Skip to main content
Glama

MCP Server for Oracle Cloud Infrastructure (OCI)

This project implements a Model Context Protocol (MCP) server for Oracle Cloud Infrastructure, allowing LLMs like Claude to interact directly with OCI resources.

presentation

Features

  • Dynamic Profile Selection: Switch between OCI profiles/tenancies without restarting the server

  • Connection to Oracle Cloud using standard OCI CLI configuration

  • 95 comprehensive tools to list and manage OCI resources across 11+ service categories

  • Instance lifecycle management (start, stop)

  • Database Systems and DB Nodes management

  • Exadata Cloud Service (Cloud Exadata Infrastructure, VM Clusters, Data Guard, backups, maintenance runs)

  • Container Engine for Kubernetes (OKE) cluster and node pool management

  • Integration with the MCP protocol to facilitate access from Claude Desktop

Related MCP server: Oracle Context MCP Server

Prerequisites

  • Python 3.10 or higher

  • OCI CLI configured (oci setup config)

  • Appropriate permissions in Oracle Cloud

Installation

Clone this repo

pip install git+https://github.com/modelcontextprotocol/python-sdk.git
pip install oci fastapi uvicorn click pydantic loguru
pip install -e .

Usage

Starting the Server

Option 1: Dynamic Profile Selection (Recommended)

Start without a profile and select it at runtime:

python -m mcp_server_oci.mcp_server

Then use the MCP tools to manage profiles:

  • list_oci_profiles - See available profiles from ~/.oci/config

  • set_oci_profile - Activate a specific profile

  • get_current_oci_profile - Check which profile is active

Option 2: With Default Profile

Start with a specific profile pre-loaded:

python -m mcp_server_oci.mcp_server --profile DEFAULT

With uv:

uv --directory /path/to/mcp-server-oci run python -m mcp_server_oci.mcp_server --profile DEFAULT

Switching Between Tenancies

You can switch between different OCI tenancies without restarting:

# In your MCP client (e.g., Claude):
# 1. List available profiles
"Show me available OCI profiles"

# 2. Switch to a different tenancy
"Switch to the 'production' OCI profile"

# 3. Verify current profile
"What OCI profile am I using?"

Configuration for Claude Desktop (MacOS)

Add this configuration to your file: /Users/<usuario>/Library/Application Support/Claude/claude_desktop_config.json

With dynamic profile selection (recommended):

"mcpServers": {
  "mcp-server-oci": {
    "command": "python",
    "args": [
      "-m",
      "mcp_server_oci.mcp_server"
    ],
    "env": {
      "PYTHONPATH": "/<PATH_TO_MCP>/mcp-server-oci",
      "FASTMCP_LOG_LEVEL": "INFO"
    }
  }
}

With fixed profile:

"mcpServers": {
  "mcp-server-oci": {
    "command": "python",
    "args": [
      "-m",
      "mcp_server_oci.mcp_server",
      "--profile", "DEFAULT"
    ],
    "env": {
      "PYTHONPATH": "/<PATH_TO_MCP>/mcp-server-oci",
      "FASTMCP_LOG_LEVEL": "INFO"
    }
  }
}

With uv and dynamic profiles:

"mcpServers": {
  "mcp-server-oci": {
    "command": "uv",
    "args": [
      "--directory",
      "/<PATH_TO_MCP>/mcp-server-oci",
      "run",
      "python",
      "-m",
      "mcp_server_oci.mcp_server"
    ],
    "env": {
      "FASTMCP_LOG_LEVEL": "INFO"
    }
  }
}

📋 Available MCP Tools

Profile Management 🆕

  • list_oci_profiles - List all available OCI profiles from ~/.oci/config

  • set_oci_profile - Activate a specific profile for API calls

  • get_current_oci_profile - Show currently active profile

Identity & Access Management 🆕

Compartments

  • list_compartments - List all compartments accessible to you

Users

  • list_users - List all IAM users in a compartment with capabilities and MFA status

  • get_user - Get detailed user information including group memberships

Groups

  • list_groups - List all IAM groups in a compartment with member count

  • get_group - Get detailed group information including members

Policies

  • list_policies - List all IAM policies in a compartment with statements

  • get_policy - Get detailed policy information with all policy statements

Dynamic Groups

  • list_dynamic_groups - List all dynamic groups with matching rules

  • get_dynamic_group - Get detailed dynamic group info with instance principal rules

Compute Resources

  • list_instances - List virtual machine instances in a compartment

  • get_instance - Get detailed information about a specific instance

  • start_instance - Start a stopped instance

  • stop_instance - Stop a running instance (supports soft/force stop)

Databases 🔥

DB Systems

  • list_db_systems - List DB Systems in a compartment

  • get_db_system - Get detailed DB System information

  • list_db_nodes - List DB Nodes in a compartment (optionally filtered by DB System)

  • get_db_node - Get detailed DB Node information

  • start_db_node - Start a stopped DB Node

  • stop_db_node - Stop a running DB Node (soft or hard stop)

  • reboot_db_node - Reboot a DB Node

  • reset_db_node - Reset (force reboot) a DB Node

  • softreset_db_node - Soft reset (graceful reboot) a DB Node

  • start_db_system - Start all nodes of a DB System

  • stop_db_system - Stop all nodes of a DB System

Regular Databases 🆕

  • list_databases - List databases in a compartment (optionally filtered by DB System)

  • get_database - Get detailed database information including connection strings and PDB name

Autonomous Databases 🆕

  • list_autonomous_databases - List Autonomous Databases with workload type and connection info

  • get_autonomous_database - Get detailed ADB info including wallet info and auto-scaling settings

Exadata Cloud Service 🆕

  • list_cloud_exadata_infrastructures - List Cloud Exadata Infrastructures (fleet hardware) in a compartment

  • get_cloud_exadata_infrastructure - Get infra details: shape, activated/max CPU-memory-storage, maintenance windows

  • list_cloud_vm_clusters - List Cloud VM Clusters (Exadata Cloud Service RAC)

  • get_cloud_vm_cluster - Get VM cluster details: RAC nodes, SCAN DNS/VIPs, GI/system versions, subnets, NSGs

  • list_cloud_autonomous_vm_clusters - List Cloud Autonomous VM Clusters (Exadata for Autonomous DB)

Data Guard 🆕

  • list_data_guard_associations - List DG associations for a Database (query on the primary DB OCID)

  • get_data_guard_association - Get a specific DG association: role, peer role, apply lag/rate, protection mode

Backups & Maintenance 🆕

  • list_backups - List database backups by compartment or database

  • list_maintenance_runs - List maintenance runs, optionally filtered by target resource

  • get_maintenance_run - Get details of a specific maintenance run

Networking

Virtual Cloud Networks (VCNs)

  • list_vcns - List all VCNs in a compartment with CIDR blocks and DNS info

  • get_vcn - Get detailed VCN information including IPv6 CIDR blocks

Subnets

  • list_subnets - List all subnets in a compartment (optionally filtered by VCN)

  • get_subnet - Get detailed subnet information with security lists and routing

Virtual Network Interface Cards (VNICs)

  • list_vnics - List all VNICs in a compartment (optionally filtered by instance)

  • get_vnic - Get detailed VNIC information including IP addresses and NSG associations

Security

  • list_security_lists - List security lists with ingress/egress rules (optionally filtered by VCN)

  • get_security_list - Get detailed security list with all rules

  • list_network_security_groups - List Network Security Groups (NSGs) in a compartment

  • get_network_security_group - Get detailed NSG information with all security rules

Storage 🆕

Object Storage

  • get_namespace - Get the Object Storage namespace for the tenancy

  • list_buckets - List all Object Storage buckets in a compartment

  • get_bucket - Get detailed bucket information including public access settings and versioning

Block Storage

  • list_volumes - List all Block Storage volumes in a compartment

  • get_volume - Get detailed volume information including size, performance tier, and backup policy

  • list_boot_volumes - List all boot volumes in a compartment (optionally filtered by AD)

  • get_boot_volume - Get detailed boot volume information including source image

File Storage

  • list_file_systems - List all File Storage file systems in a compartment and AD

  • get_file_system - Get detailed file system information including metered bytes and snapshots

Load Balancers 🆕

Classic Load Balancers

  • list_load_balancers - List all classic load balancers in a compartment

  • get_load_balancer - Get detailed load balancer information including backend sets, listeners, and certificates

Network Load Balancers

  • list_network_load_balancers - List all network load balancers in a compartment

  • get_network_load_balancer - Get detailed network load balancer information including backend sets and listeners

Infrastructure Utilities 🆕

Availability and Fault Domains

  • list_availability_domains - List all availability domains in a compartment

  • list_fault_domains - List all fault domains in an availability domain

Compute Images

  • list_images - List all compute images with OS, version, and size

  • get_image - Get detailed image information including launch options

Compute Shapes

  • list_shapes - List all compute shapes with CPU, memory, network, and GPU specs

Regions and Tenancy

  • list_regions - List all available OCI regions

  • get_tenancy_info - Get tenancy details including name and home region

Security & Encryption 🆕

KMS Vaults

  • list_vaults - List all KMS vaults in a compartment

  • get_vault - Get detailed vault information including crypto and management endpoints

Encryption Keys

  • list_keys - List all encryption keys in a vault's compartment

  • get_key - Get detailed key information including algorithm, shape, and versions

Cost Management 🆕

Usage and Cost Analysis

  • get_cost_usage_summary - Get cost and usage summary for a tenancy with daily or monthly granularity

  • get_cost_by_service - Get cost breakdown by service for a specified time period

  • get_cost_by_compartment - Get cost breakdown by compartment for a specified time period

Budgets

  • list_budgets - List all budgets with amount, actual spend, and forecasted spend

  • get_budget - Get detailed budget information including targets and alert rules

Monitoring & Observability 🆕

Alarms

  • list_alarms - List all alarms with query, severity, and destinations

  • get_alarm - Get detailed alarm information including thresholds and notification settings

  • get_alarm_history - Get alarm state history with timestamps and state transitions

Metrics

  • list_metrics - List available metrics with namespaces and dimensions

  • query_metric_data - Query metric data for a time range using MQL

Logs

  • search_logs - Search logs using the Logging Search API

  • list_log_groups - List all log groups in a compartment

  • list_logs - List all logs in a log group with types and retention

Container Engine for Kubernetes (OKE) 🆕

Clusters

  • list_oke_clusters - List all OKE clusters with Kubernetes version and endpoints

  • get_oke_cluster - Get detailed cluster info including network config, add-ons, and available upgrades

  • get_oke_cluster_kubeconfig - Get kubeconfig file content for kubectl access

Node Pools

  • list_oke_node_pools - List node pools with shape, image, and placement configuration

  • get_oke_node_pool - Get detailed node pool info including individual nodes, eviction settings, and cycling details

Work Requests

  • list_oke_work_requests - List async operations (create, update, delete) for OKE resources

  • get_oke_work_request - Get detailed work request status and progress

💡 Usage Examples

Profile Management

# From Claude or any MCP client:

# List available profiles
"Show me all available OCI profiles"

# Activate a specific profile
"Set the OCI profile to 'production'"

# Check current profile
"What OCI profile am I currently using?"

# Switch between tenancies
"Switch to the DEFAULT profile"

Identity & Access Management 🆕

# Users
"List all IAM users in my tenancy"
"Show me details for user ocid1.user.oc1..."
"Does this user have MFA enabled?"
"What groups is this user a member of?"

# Groups
"List all IAM groups in compartment X"
"Show me members of group 'Administrators'"
"Get details for group ocid1.group.oc1..."

# Policies
"List all IAM policies in the root compartment"
"Show me policy statements for 'network-admins-policy'"
"What permissions does this policy grant?"
"Get details for policy ocid1.policy.oc1..."

# Dynamic Groups
"List all dynamic groups in my tenancy"
"Show me matching rules for dynamic group 'instance-principals'"
"What instances match this dynamic group?"
"Get details for dynamic group ocid1.dynamicgroup.oc1..."

# Security auditing
"Which users have admin access?"
"Show me all policies that grant object storage access"
"What dynamic groups allow instance principals?"

Compute Instance Management

# List instances
"Show me all compute instances in compartment ocid1.compartment.oc1..."

# Get instance details
"Get details for instance ocid1.instance.oc1..."

# Start/stop instances
"Start the instance ocid1.instance.oc1..."
"Stop the instance ocid1.instance.oc1... with force stop"

Database Management

# DB Systems
"Show me all DB Systems in compartment ocid1.compartment.oc1..."
"Get details for DB System ocid1.dbsystem.oc1..."

# DB Nodes management
"List all DB Nodes for DB System ocid1.dbsystem.oc1..."
"Start DB Node ocid1.dbnode.oc1..."
"Stop all nodes of DB System ocid1.dbsystem.oc1..."
"Reboot DB Node ocid1.dbnode.oc1..."
"Soft reset DB Node ocid1.dbnode.oc1..."

# Regular Databases 🆕
"List all databases in compartment X"
"Show me databases in DB System Y"
"Get connection strings for database ocid1.database.oc1..."
"What is the character set and PDB name of this database?"

# Autonomous Databases 🆕
"List all Autonomous Databases in compartment Z"
"Show me details for ADB ocid1.autonomousdatabase.oc1..."
"What workload type is this Autonomous Database?"
"Get connection strings and wallet info for this ADB"
"Is auto-scaling enabled on this Autonomous Database?"

Networking Management

# VCN operations
"List all VCNs in compartment ocid1.compartment.oc1..."
"Show me details for VCN ocid1.vcn.oc1..."

# Subnet operations
"List all subnets in VCN ocid1.vcn.oc1..."
"Get details for subnet ocid1.subnet.oc1..."

# Security operations
"Show me all security lists in compartment X"
"List all network security groups in VCN Y"
"Get security rules for security list ocid1.securitylist.oc1..."

# VNIC operations
"List all VNICs for instance ocid1.instance.oc1..."
"Show me details for VNIC ocid1.vnic.oc1..."

Storage Management 🆕

# Object Storage operations
"What is my Object Storage namespace?"
"List all buckets in compartment X"
"Show me details for bucket 'my-data-bucket'"
"Is bucket 'public-bucket' publicly accessible?"

# Block Storage operations
"List all volumes in compartment Y"
"Show me details for volume ocid1.volume.oc1..."
"List all boot volumes in compartment Z"
"What is the size and performance tier of this volume?"

# File Storage operations
"List all file systems in compartment W and AD-1"
"Show me details for file system ocid1.filesystem.oc1..."
"How many bytes is this file system using?"

Load Balancer Management 🆕

# Classic Load Balancers
"List all load balancers in compartment X"
"Show me details for load balancer ocid1.loadbalancer.oc1..."
"What backend sets and listeners does this load balancer have?"
"Show me health check configuration for this load balancer"

# Network Load Balancers
"List all network load balancers in compartment Y"
"Show me details for network load balancer ocid1.networkloadbalancer.oc1..."
"What is the backend configuration for this NLB?"
"Is source IP preservation enabled on this network load balancer?"

# Load balancer analysis
"Show me all load balancers and their IP addresses"
"Which load balancers are private vs public?"

Infrastructure Utilities 🆕

# Availability and Fault Domains
"List all availability domains in my tenancy"
"Show me fault domains in availability domain AD-1"
"What availability domains are available in region us-ashburn-1?"

# Compute Images
"List all compute images in compartment X"
"Show me details for image ocid1.image.oc1..."
"What Oracle Linux images are available?"
"What is the size and OS version of this image?"

# Compute Shapes
"List all compute shapes available in compartment Y"
"What shapes support GPU?"
"Show me flexible shapes with configurable OCPUs"
"What is the memory and network bandwidth for shape VM.Standard.E4.Flex?"

# Regions and Tenancy
"List all available OCI regions"
"What is my tenancy name and home region?"
"Show me tenancy information"

Security & Encryption 🆕

# KMS Vaults
"List all vaults in compartment X"
"Show me details for vault ocid1.vault.oc1..."
"What is the management endpoint for this vault?"
"Is this vault primary or replica?"

# Encryption Keys
"List all encryption keys in vault Y"
"Show me details for key ocid1.key.oc1..."
"What algorithm and protection mode does this key use?"
"What is the current key version?"

# Key management workflow
"First, get vault details to obtain the management_endpoint"
"Then, use that endpoint to list or get keys in that vault"

Cost Management 🆕

# Usage and Cost Analysis
"Show me cost and usage summary for the last 30 days"
"Get cost breakdown by service from 2024-01-01 to 2024-01-31"
"What are my costs by compartment for this month?"
"Show me daily cost summary for my tenancy"

# Cost analysis queries
"Which services are costing the most?"
"What compartment has the highest spend?"
"Show me monthly cost trends"

# Budgets
"List all budgets in compartment X"
"Show me budget details for budget ocid1.budget.oc1..."
"What is my actual spend vs budget?"
"Show me forecasted spend for this budget"
"Which budgets have alert rules configured?"

Monitoring & Observability 🆕

# Alarms
"List all alarms in compartment X"
"Show me details for alarm ocid1.alarm.oc1..."
"What alarms are currently firing?"
"Show me alarm history for the last 24 hours"
"Which alarms have critical severity?"

# Metrics
"List all available metrics in compartment Y"
"Show me CPU metrics for compute instances"
"Query CpuUtilization for the last hour"
"What metrics are available for namespace oci_computeagent?"

# Logs
"Search logs for errors in the last hour"
"List all log groups in compartment Z"
"Show me logs in log group ocid1.loggroup.oc1..."
"Search for 'ERROR' in application logs"

# Troubleshooting workflows
"Show me all firing alarms and their metric queries"
"Get CPU utilization data for instance X in the last 2 hours"
"Search logs for errors related to database connections"

Container Engine for Kubernetes (OKE) 🆕

# Clusters
"List all OKE clusters in compartment X"
"Show me details for cluster ocid1.cluster.oc1..."
"What Kubernetes version is this cluster running?"
"What upgrades are available for my cluster?"
"Get the kubeconfig for cluster ocid1.cluster.oc1..."
"What are the public and private endpoints for this cluster?"

# Node Pools
"List all node pools in compartment Y"
"Show me node pools for cluster Z"
"Get details for node pool ocid1.nodepool.oc1..."
"What is the shape and size of this node pool?"
"Show me individual nodes in this node pool"
"What is the Kubernetes version of the node pool?"

# Work Requests
"List all OKE work requests in compartment A"
"Show me work requests for cluster B"
"Get details for work request ocid1.clustersworkrequest.oc1..."
"What operations are currently in progress?"
"Show me the status of cluster creation"

# Kubernetes cluster management workflows
"List all clusters and their Kubernetes versions"
"Show me clusters that have available upgrades"
"Get kubeconfig for all clusters in my compartment"
"Which node pools are running outdated Kubernetes versions?"
"Show me all work requests that failed"

Resource Discovery

# List compartments
"List all compartments in my tenancy"

# Cross-resource queries
"Show me all running instances in compartment X"
"List all DB Systems and their current states"
"Show me the complete network topology for compartment X"

🚀 Recent Improvements

v1.16 - Exadata Cloud Service Tools (Latest) 🗄️

  • 10 new tools: Cloud Exadata Infrastructure, Cloud VM Clusters, Cloud Autonomous VM Clusters, Data Guard, Backups, and Maintenance Runs

  • Exadata Cloud Service: List/get Cloud Exadata Infrastructures and Cloud VM Clusters with RAC, SCAN DNS, and GI/system version details

  • Data Guard: List/get Data Guard associations with role, apply lag/rate, and protection mode

  • Backups & Maintenance: List backups by compartment/database, list/get maintenance runs

  • Total MCP tools increased from 85 to 95

  • Bug fixes: list_compartments now derives the tenancy OCID from config instead of get_user, fixing 404 errors for federated/IAM-Domain users; list_available_profiles now includes the [DEFAULT] profile section

  • Added comprehensive Exadata Cloud Service usage examples in README

v1.15 - Container Engine for Kubernetes (OKE) Tools ☸️

  • 7 new OKE tools: Clusters, Node Pools, and Work Requests

  • Clusters: List/get clusters with Kubernetes version, endpoints, network config, and available upgrades

  • Kubeconfig: Get kubeconfig file content for kubectl access to clusters

  • Node Pools: List/get node pools with detailed node information, placement config, and eviction settings

  • Work Requests: Track async operations (create, update, delete) for OKE resources

  • Essential for managing Kubernetes infrastructure on OCI

  • Total MCP tools increased from 78 to 85

  • Added comprehensive OKE usage examples in README

v1.14 - Monitoring & Observability Tools 🔍

  • 8 new monitoring tools: Alarms, Metrics, and Logs

  • Alarms: List/get alarms with severity, query history, and state transitions

  • Metrics: List metrics, query time-series data with MQL for performance analysis

  • Logs: Search logs, list log groups and logs for troubleshooting

  • Essential for real-time monitoring, troubleshooting, and incident response

  • Total MCP tools increased from 70 to 78

  • Added comprehensive monitoring & observability usage examples in README

v1.13 - Cost Management Tools 💰

  • 5 new cost management tools: Usage/Cost Analysis and Budgets

  • Usage Analysis: Get cost summaries with daily/monthly granularity

  • Cost Breakdown: Analyze costs by service or compartment for any time period

  • Budget Management: List/get budgets with actual spend, forecasted spend, and alert rules

  • Essential for cost optimization, budget tracking, and financial governance

  • Total MCP tools increased from 65 to 70

  • Added comprehensive cost management usage examples in README

v1.12 - Security & Encryption Tools 🔐

  • 4 new security tools: KMS Vaults and Encryption Keys

  • KMS Vaults: List/get vaults with crypto and management endpoints

  • Encryption Keys: List/get keys with algorithm, protection mode, and key shape

  • Complete KMS coverage: Vault management and key discovery

  • Dynamic KMS Management client creation using vault endpoints

  • Total MCP tools increased from 61 to 65

  • Added comprehensive security & encryption usage examples in README

v1.11 - Infrastructure Utilities 🏗️

  • 7 new infrastructure tools: Availability Domains, Fault Domains, Images, Shapes, Regions, and Tenancy

  • Availability/Fault Domains: List ADs and FDs for high availability planning

  • Compute Images: List/get images with OS versions and launch options

  • Compute Shapes: List shapes with CPU, memory, network, and GPU specifications

  • Regions & Tenancy: List all regions and get tenancy information

  • Essential for resource planning, capacity management, and infrastructure discovery

  • Total MCP tools increased from 54 to 61

  • Added comprehensive infrastructure utilities usage examples in README

v1.10 - Load Balancer Tools ⚖️

  • 4 new load balancer tools: Classic Load Balancers and Network Load Balancers

  • Classic Load Balancers: List/get LBs with backend sets, listeners, and certificates

  • Network Load Balancers: List/get NLBs with backend configuration and IP preservation

  • Complete load balancing coverage: Layer 7 (classic) and Layer 4 (network) load balancers

  • Total MCP tools increased from 50 to 54

  • Added comprehensive load balancer usage examples in README

v1.9 - Identity & Access Management Tools 🔐

  • 8 new IAM tools: Users, Groups, Policies, Dynamic Groups

  • Security auditing: Review user capabilities, MFA status, and group memberships

  • Policy management: List and inspect all IAM policy statements

  • Dynamic groups: View instance principal matching rules

  • Essential for compliance, security audits, and access troubleshooting

  • Total MCP tools increased from 42 to 50

  • Added comprehensive IAM usage examples in README

v1.8 - Database Tools 🗄️

  • 4 new database tools: Regular Databases and Autonomous Databases

  • Regular Databases: List/get databases with connection strings and PDB names

  • Autonomous Databases: List/get ADB with workload type, wallet info, and auto-scaling

  • Complete database ecosystem coverage: DB Systems, DB Nodes, Databases, and ADB

  • Total MCP tools increased from 38 to 42

  • Added comprehensive database usage examples in README

v1.7 - Storage Tools 💾

  • 9 new storage tools: Object Storage, Block Storage, File Storage

  • Object Storage: Get namespace, list/get buckets with public access info

  • Block Storage: List/get volumes and boot volumes with performance tiers

  • File Storage: List/get file systems with metered bytes

  • Total MCP tools increased from 29 to 38

  • Added comprehensive storage usage examples in README

v1.6 - Comprehensive Networking Tools 🌐

  • 10 new networking tools: VCNs, Subnets, VNICs, Security Lists, NSGs

  • Network topology discovery: Complete visibility of network infrastructure

  • Security auditing: Review security rules and network access controls

  • Connectivity troubleshooting: VNIC and routing information

  • Total MCP tools increased from 19 to 29

  • Added comprehensive networking usage examples in README

v1.5 - Dynamic Profile Selection 🔥

  • Multi-tenancy support: Switch between OCI profiles without restarting

  • New MCP tools: list_oci_profiles, set_oci_profile, get_current_oci_profile

  • Profile requirement validation in all OCI tools

  • Optional --profile argument (lazy initialization)

  • Complete documentation in DYNAMIC_PROFILE_SELECTION.md

  • Updated README with accurate tool listing

v1.4 - Centralized Configuration

  • Created centralized config.py with all configuration constants

  • Eliminated magic numbers throughout the codebase

  • Improved maintainability and discoverability of configuration values

v1.3 - Async Operations

  • Removed all blocking time.sleep() calls

  • Made all operations truly asynchronous

  • Improved server responsiveness

v1.2 - Standardized Error Handling

  • Implemented Hybrid Error Handling Pattern

  • Technical errors → raise exceptions

  • Business states → return success dictionaries

  • Comprehensive documentation in ERROR_HANDLING_PATTERN.md

v1.1 - DRY Principle

  • Created mcp_tool_wrapper decorator

  • Eliminated ~150 lines of repetitive code

  • Consistent error handling and logging across all tools

v1.0 - Code Cleanup

  • Removed unused/obsolete files

  • Cleaned up commented code

  • Established clean baseline

📚 Documentation

🤝 Contributing

Contributions are welcome! The codebase follows these patterns:

  • Hybrid error handling (raise for technical errors, return dict for business states)

  • Async operations (no blocking calls)

  • Centralized configuration (constants in config.py)

  • DRY principle (use decorators for common patterns)

📝 License

[Add your license here]

Available Tools

85 tools
get_alarmB
Get detailed information about a specific alarm.

Args:
    alarm_id: OCID of the alarm to retrieve

Returns:
    Detailed alarm information including query, thresholds, and notification settings
ParametersJSON Schema
NameRequiredDescriptionDefault
alarm_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a retrieval operation ('get'), implying it's likely read-only, but doesn't confirm this or mention any side effects, authentication requirements, rate limits, or error handling. The description is minimal and lacks behavioral context beyond the basic operation.

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

Conciseness5/5

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

The description is well-structured and extremely concise: a clear purpose statement followed by dedicated 'Args' and 'Returns' sections. Every sentence earns its place with no wasted words. The information is front-loaded and efficiently organized.

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

Completeness3/5

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

Given the tool's simplicity (single parameter, no output schema, no annotations), the description covers the basics: purpose, parameter meaning, and return content overview. However, for a retrieval tool without annotations, it should ideally mention that this is a read-only operation and possibly clarify the relationship with 'list_alarms'. The description is minimally adequate but could be more complete.

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

Parameters4/5

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

The description explicitly documents the single parameter 'alarm_id' with its semantic meaning ('OCID of the alarm to retrieve'), which is valuable since schema description coverage is 0%. This adds essential context beyond the bare schema, though it doesn't elaborate on OCID format or validation rules. For a single parameter tool, this provides adequate semantic clarification.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific alarm.' It specifies the verb ('get') and resource ('alarm'), but doesn't explicitly differentiate from its sibling 'list_alarms' beyond the singular vs. plural naming. The description is accurate but lacks explicit sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list_alarms' or other retrieval tools. It mentions retrieving 'a specific alarm' but doesn't clarify prerequisites, error conditions, or when to choose this over other methods. No explicit usage context is provided.

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

get_alarm_historyB
Get alarm state history.

Args:
    alarm_id: OCID of the alarm
    alarm_historytype: Type of history (STATE_TRANSITION_HISTORY, STATE_HISTORY, RULE_HISTORY)

Returns:
    List of alarm history entries with timestamps and state changes
ParametersJSON Schema
NameRequiredDescriptionDefault
alarm_idYes
alarm_historytypeNoSTATE_TRANSITION_HISTORY

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool returns a list of entries with timestamps and state changes, which adds some context about output format. However, it lacks critical details such as whether this is a read-only operation, if it requires specific permissions, how data is paginated or limited, or any rate limits. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is appropriately sized and well-structured. It starts with a clear purpose statement, followed by organized sections for 'Args' and 'Returns', using bullet-like formatting. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It covers the basic purpose and parameters adequately but lacks output details beyond a high-level description. Without annotations or an output schema, it doesn't fully address behavioral aspects like error handling or data scope, leaving room for improvement in contextual understanding.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: 'alarm_id' is explained as 'OCID of the alarm', and 'alarm_historytype' is described with its types (STATE_TRANSITION_HISTORY, STATE_HISTORY, RULE_HISTORY) and a default value. This clarifies parameter purposes beyond the schema's basic titles, though it doesn't detail format constraints or usage examples.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get alarm state history.' It specifies the verb ('Get') and resource ('alarm state history'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_alarm' or 'list_alarms', which might retrieve current alarm data or lists of alarms, respectively.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_alarm' (likely for current alarm details) and 'list_alarms' (likely for listing alarms), there's no indication of when historical data is needed or how this tool fits into broader workflows. Usage is implied only by the tool's name and description.

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

get_autonomous_databaseB
Get detailed information about a specific Autonomous Database.

Args:
    autonomous_database_id: OCID of the Autonomous Database to retrieve

Returns:
    Detailed Autonomous Database information including connection strings, wallet info, and auto-scaling settings
ParametersJSON Schema
NameRequiredDescriptionDefault
autonomous_database_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool retrieves information, implying it's a read-only operation, but doesn't explicitly confirm this or mention any side effects, authentication requirements, rate limits, or error conditions. The description adds minimal behavioral context beyond the basic action.

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

Conciseness5/5

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

The description is well-structured and concise, with zero wasted words. It starts with a clear purpose statement, followed by specific sections for 'Args' and 'Returns,' each providing essential information in a bullet-like format. Every sentence earns its place, making it easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is adequate but has gaps. It explains the parameter and return content, but lacks behavioral details like read-only confirmation or error handling. For a simple retrieval tool, it meets minimum viability but could be more complete by addressing missing aspects.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: it explains that 'autonomous_database_id' is an 'OCID of the Autonomous Database to retrieve.' This clarifies the parameter's purpose and format (OCID), which is valuable since the schema has 0% description coverage and only provides a title. With one parameter well-explained, the description compensates effectively.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific Autonomous Database.' It specifies the verb ('Get') and resource ('Autonomous Database'), making the action clear. However, it doesn't explicitly differentiate from its sibling 'list_autonomous_databases' beyond the singular vs. plural naming, which is why it doesn't reach a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'list_autonomous_databases' for listing multiple databases or clarify that this is for retrieving details of a single, specific database identified by its OCID. Without such context, the agent lacks explicit usage instructions.

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

get_boot_volumeB
Get detailed information about a specific boot volume.

Args:
    boot_volume_id: OCID of the boot volume to retrieve

Returns:
    Detailed boot volume information including size, performance, and source image
ParametersJSON Schema
NameRequiredDescriptionDefault
boot_volume_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get'), implying it's non-destructive, but doesn't cover critical aspects like authentication requirements, rate limits, error conditions, or response format details. The description adds minimal behavioral context beyond the basic action.

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

Conciseness5/5

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

The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by 'Args' and 'Returns' sections that efficiently document inputs and outputs. Every sentence adds value without redundancy, making it easy to parse and understand quickly.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but has gaps. It explains the parameter and return value at a high level, but lacks details on authentication, error handling, or performance characteristics. For a simple read tool, it meets minimum viability but could be more comprehensive.

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

Parameters4/5

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

The description adds meaningful semantics for the single parameter: 'boot_volume_id: OCID of the boot volume to retrieve.' This clarifies that the ID is an OCID (Oracle Cloud Identifier) and specifies its purpose. With schema description coverage at 0% (no schema descriptions), the description fully compensates by providing essential parameter context, though it doesn't cover format or validation rules.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific boot volume.' It specifies the verb ('Get') and resource ('boot volume'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_volume' or 'list_boot_volumes', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_boot_volumes' for listing volumes or 'get_volume' for other volume types, nor does it specify prerequisites or contexts for usage, leaving the agent without explicit selection criteria.

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

get_bucketB
Get detailed information about a specific Object Storage bucket.

Args:
    bucket_name: Name of the bucket
    namespace: Optional namespace (if not provided, will be fetched automatically)

Returns:
    Detailed bucket information including public access settings and versioning
ParametersJSON Schema
NameRequiredDescriptionDefault
bucket_nameYes
namespaceNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' and mentions return content like 'public access settings and versioning,' which adds some context. However, it lacks critical details: whether this is a read-only operation, potential error conditions (e.g., if the bucket doesn't exist), authentication requirements, or rate limits. This leaves significant gaps for a tool that likely interacts with cloud storage.

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

Conciseness5/5

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

The description is well-structured and concise, with zero wasted words. It starts with a clear purpose statement, followed by bullet points for 'Args' and 'Returns' that efficiently organize key information. Every sentence earns its place, making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It covers the basic purpose and parameters adequately but lacks behavioral details like error handling or security requirements. Without an output schema, it helpfully hints at return values ('public access settings and versioning'), but this isn't comprehensive. It's a minimal viable description with clear room for improvement.

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

Parameters4/5

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

The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'bucket_name' is the 'Name of the bucket' and clarifies that 'namespace' is 'Optional' and will be 'fetched automatically' if not provided. This compensates well for the schema's lack of descriptions, though it doesn't detail format constraints (e.g., naming rules for buckets).

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific Object Storage bucket.' It specifies the verb ('Get') and resource ('Object Storage bucket'), making the action unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_buckets' or other 'get_' tools, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_buckets' for listing multiple buckets or other 'get_' tools for different resources. There's no context about prerequisites, such as required permissions or when namespace specification is necessary, leaving usage unclear.

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

get_budgetB
Get detailed information about a specific budget.

Args:
    budget_id: OCID of the budget to retrieve

Returns:
    Detailed budget information including targets, alert rules, and spend tracking
ParametersJSON Schema
NameRequiredDescriptionDefault
budget_idYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states this is a read operation ('Get'), which implies it's non-destructive, but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what 'detailed information' entails beyond the high-level mention of targets, alert rules, and spend tracking. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. There's no wasted text, though the 'Returns' section could be more detailed given the lack of output schema. Overall, it's efficient and well-organized.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no nested objects) but lack of annotations and output schema, the description is moderately complete. It covers the basic purpose and parameter semantics but lacks details on behavioral aspects, error handling, and the full scope of return values. For a simple read tool, this is adequate but with clear gaps in transparency.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: it specifies that 'budget_id' is an 'OCID of the budget to retrieve,' which clarifies the parameter's purpose and format beyond the schema's minimal title ('Budget Id'). With schema description coverage at 0% and only one parameter, this compensation is effective, though it doesn't cover edge cases or examples.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific budget.' It uses a specific verb ('Get') and resource ('budget'), but doesn't explicitly differentiate from sibling tools like 'list_budgets' or 'get_cost_by_compartment' beyond the 'specific budget' qualifier. This is clear but lacks explicit sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_budgets' for listing all budgets or 'get_cost_by_compartment' for cost-related queries, nor does it specify prerequisites or contexts for retrieving a specific budget. Usage is implied by the parameter requirement but not explicitly stated.

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

get_cost_by_compartmentB
Get cost breakdown by compartment for a tenancy.

Args:
    tenant_id: OCID of the tenancy
    time_usage_started: Start time in ISO format (YYYY-MM-DD)
    time_usage_ended: End time in ISO format (YYYY-MM-DD)

Returns:
    List of costs grouped by compartment with total cost per compartment
ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYes
time_usage_startedYes
time_usage_endedYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves cost data but doesn't mention whether this is a read-only operation, requires specific permissions, has rate limits, or involves data freshness considerations. For a tool that likely accesses billing/financial data, this lack of behavioral context is a significant gap.

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

Conciseness4/5

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

The description is well-structured and appropriately sized. It begins with a clear purpose statement, followed by organized sections for 'Args' and 'Returns'. Each sentence serves a specific function without redundancy. Minor improvements could include more explicit formatting, but overall it's efficient and front-loaded.

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It adequately covers parameters and return format but lacks behavioral context and usage guidance. Without annotations or output schema, the description should ideally mention more about authentication needs, error conditions, or data limitations to be fully comprehensive.

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

Parameters4/5

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

The description adds substantial value beyond the input schema, which has 0% description coverage. It clearly explains each parameter's purpose: 'tenant_id: OCID of the tenancy', 'time_usage_started: Start time in ISO format (YYYY-MM-DD)', and 'time_usage_ended: End time in ISO format (YYYY-MM-DD)'. This provides essential semantic context that the schema alone lacks, though it could benefit from mentioning format constraints or examples.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get cost breakdown by compartment for a tenancy.' It specifies the verb ('Get'), resource ('cost breakdown'), and scope ('by compartment for a tenancy'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from its sibling 'get_cost_by_service' or other cost-related tools, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_cost_by_service' or 'get_cost_usage_summary', nor does it specify prerequisites, exclusions, or appropriate contexts for usage. This leaves the agent without clear direction on tool selection.

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

get_cost_by_serviceB
Get cost breakdown by service for a tenancy.

Args:
    tenant_id: OCID of the tenancy
    time_usage_started: Start time in ISO format (YYYY-MM-DD)
    time_usage_ended: End time in ISO format (YYYY-MM-DD)

Returns:
    List of costs grouped by service with total cost per service
ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYes
time_usage_startedYes
time_usage_endedYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a list of costs grouped by service, which is helpful, but lacks critical details such as whether it's a read-only operation, requires specific permissions, has rate limits, or handles errors. For a cost-reporting tool with zero annotation coverage, this is a significant gap.

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

Conciseness4/5

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

The description is appropriately sized and well-structured, with clear sections for purpose, arguments, and returns. Each sentence earns its place by providing essential information without redundancy. However, the formatting with quotes and line breaks could be slightly cleaner, preventing a perfect score.

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameters but lacks usage guidelines, behavioral details, and output specifics. It meets the minimum viable threshold but has clear gaps that could hinder an AI agent's effectiveness.

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

Parameters4/5

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

The description adds substantial meaning beyond the input schema, which has 0% coverage. It explains that 'tenant_id' is an OCID, specifies the ISO format for date parameters, and clarifies their roles as start and end times. This compensates well for the schema's lack of descriptions, though it doesn't cover all potential nuances like timezone handling.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get cost breakdown by service for a tenancy.' It specifies the verb ('Get'), resource ('cost breakdown by service'), and scope ('for a tenancy'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_cost_by_compartment' or 'get_cost_usage_summary,' which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_cost_by_compartment' or 'get_cost_usage_summary,' nor does it specify prerequisites or exclusions. The only implied context is the need for a tenancy and date range, but this is insufficient for effective tool selection.

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

get_cost_usage_summaryB
Get cost and usage summary for a tenancy.

Args:
    tenant_id: OCID of the tenancy
    time_usage_started: Start time in ISO format (YYYY-MM-DD)
    time_usage_ended: End time in ISO format (YYYY-MM-DD)
    granularity: Granularity of the data (DAILY or MONTHLY), defaults to DAILY

Returns:
    List of cost and usage summaries with amounts, services, and compartments
ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYes
time_usage_startedYes
time_usage_endedYes
granularityNoDAILY

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('Get') but doesn't mention permissions, rate limits, data freshness, or error conditions. For a tool with no annotations, this is insufficient to inform safe and effective usage.

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

Conciseness4/5

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

The description is well-structured with clear sections for Args and Returns, making it easy to parse. It's front-loaded with the core purpose and avoids unnecessary details. However, the 'Returns' section could be more concise by omitting obvious details like 'List of'.

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

Completeness3/5

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

Given the tool's complexity (4 parameters, no output schema, no annotations), the description is moderately complete. It covers parameters well but lacks behavioral context and usage guidelines. Without an output schema, the Returns section is helpful but could detail the summary structure more.

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

Parameters4/5

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

The description adds significant value beyond the input schema, which has 0% description coverage. It explains each parameter's purpose (e.g., 'OCID of the tenancy', 'Start time in ISO format'), specifies defaults ('defaults to DAILY'), and clarifies formats ('YYYY-MM-DD'). This compensates well for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get cost and usage summary for a tenancy.' It specifies the verb ('Get') and resource ('cost and usage summary'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'get_cost_by_compartment' or 'get_cost_by_service', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_cost_by_compartment' or 'get_cost_by_service', nor does it specify prerequisites or exclusions. This leaves the agent without context for tool selection.

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

get_current_oci_profileB

Get the currently active OCI profile.

Returns information about which profile is currently being used for API calls.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns information about the active profile, implying a read-only operation, but doesn't clarify aspects like authentication requirements, potential errors (e.g., if no profile is set), rate limits, or the format of the returned information. For a tool with zero annotation coverage, this is insufficient to ensure safe and effective use.

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

Conciseness5/5

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

The description is extremely concise and front-loaded: the first sentence directly states the tool's purpose, and the second sentence elaborates on the return value. There is no wasted language or redundancy, making it easy for an agent to parse quickly and accurately.

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

Completeness2/5

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

Given the tool has no output schema and no annotations, the description is incomplete. It mentions what the tool returns but doesn't specify the structure or content of the returned information (e.g., profile name, configuration details). For a tool that provides configuration data, this lack of output detail leaves significant gaps in understanding how to interpret results.

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

Parameters4/5

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

The tool has 0 parameters, and the schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to add parameter semantics, as there are none to document. A baseline of 4 is appropriate because the description doesn't introduce any confusion about parameters, and the schema fully covers the absence of inputs.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get the currently active OCI profile' and 'Returns information about which profile is currently being used for API calls.' This specifies the verb ('Get') and resource ('currently active OCI profile'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_oci_profiles' or 'set_oci_profile', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_oci_profiles' (which might list all profiles) or 'set_oci_profile' (which might change the active profile), nor does it specify any prerequisites or contexts for usage. This leaves the agent without clear direction on appropriate use cases.

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

get_databaseB
Get detailed information about a specific database.

Args:
    database_id: OCID of the database to retrieve

Returns:
    Detailed database information including connection strings, character set, and PDB name
ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a read operation ('Get'), which implies it's non-destructive, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what happens if the database_id is invalid. The description is minimal beyond stating the basic action.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence earns its place with no wasted words, making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is reasonably complete for a basic read operation. It explains what the tool does, the parameter, and the return information. However, it lacks details on behavioral aspects like error handling or authentication, which would be helpful given the absence of annotations.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'database_id: OCID of the database to retrieve.' This clarifies that the ID is an OCID (Oracle Cloud Identifier) and its purpose, compensating for the 0% schema description coverage. Since there's only one parameter, the description adequately covers its semantics.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific database.' It specifies the verb ('Get') and resource ('database'), though it doesn't explicitly differentiate from sibling tools like 'get_autonomous_database' or 'list_databases' beyond the singular vs. plural distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for retrieving details of a single database (vs. 'list_databases' for multiple), it doesn't explicitly state this or mention prerequisites like needing a database_id. The context is clear but lacks explicit usage rules.

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

get_db_nodeD

Get DB Node details.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Get DB Node details' which implies a read-only operation, but doesn't confirm safety, permissions required, rate limits, error conditions, or response format. For a tool with zero annotation coverage, this minimal description fails to provide necessary behavioral context.

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

Conciseness5/5

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

The description is extremely concise at just three words. While this brevity comes at the cost of completeness, every word serves a purpose: 'Get' indicates the action, 'DB Node' specifies the resource, and 'details' suggests granular information. There's no wasted language or unnecessary elaboration.

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

Completeness1/5

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

Given zero annotation coverage, no output schema, and 0% schema description coverage for the single required parameter, the description is completely inadequate. It doesn't explain what details are returned, how to interpret results, error handling, or any operational considerations. For a tool that presumably interacts with database infrastructure, this minimal description leaves critical gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the single parameter 'db_node_id' is undocumented in the schema. The description doesn't mention this parameter at all, failing to explain what a DB node ID is, where to find it, or its expected format. With one required parameter and no schema documentation, the description adds no value beyond what's already implied by the tool name.

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

Purpose2/5

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

The description 'Get DB Node details' is a tautology that restates the tool name 'get_db_node' with minimal elaboration. While it indicates the tool retrieves information about a database node, it lacks specificity about what details are returned or the scope of the operation. It doesn't distinguish this tool from sibling 'list_db_nodes' or other get_* tools.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like authentication, differentiate from 'list_db_nodes' for bulk retrieval, or specify when detailed node information is needed versus summary data. With many sibling tools available, this absence of context is problematic.

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

get_db_systemD

Get DB System details.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_system_idYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. The description only states what the tool does ('Get DB System details') without mentioning whether this is a read-only operation, what permissions are required, whether it has side effects, rate limits, error conditions, or what format the details are returned in. For a tool with zero annotation coverage, this is completely inadequate.

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

Conciseness4/5

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

The description is extremely concise at just three words, which is appropriately brief for a simple-sounding tool. However, this brevity comes at the cost of being under-specified rather than efficiently informative. While it's front-loaded with the core action, it lacks the necessary detail that would make it truly helpful.

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

Completeness1/5

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

Given the complexity of database systems in cloud environments, no annotations, no output schema, and 0% parameter documentation coverage, the description is completely inadequate. It doesn't explain what 'details' are returned, how this differs from list operations, what authentication is required, or any behavioral characteristics. For a tool that likely interacts with production database infrastructure, this minimal description poses significant risks for correct agent usage.

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

Parameters2/5

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

The input schema has 1 parameter (db_system_id) with 0% schema description coverage, meaning the parameter is completely undocumented in the schema. The description provides no information about this parameter - what a DB System ID is, where to find it, its format, or examples. While there's only one parameter, the description fails to compensate for the complete lack of schema documentation, leaving the agent guessing about required input.

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

Purpose2/5

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

The description 'Get DB System details' is a tautology that essentially restates the tool name 'get_db_system' without adding meaningful specificity. It mentions the resource ('DB System') but lacks detail about what specific details are retrieved or how this differs from sibling tools like 'get_database' or 'list_db_systems'. This provides minimal value beyond the name itself.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With numerous sibling tools like 'get_database', 'list_db_systems', 'get_db_node', and 'get_autonomous_database', there is no indication of when this specific DB System retrieval is appropriate, what prerequisites exist, or what distinguishes it from other database-related tools. This leaves the agent with no contextual usage information.

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

get_dynamic_groupB
Get detailed information about a specific dynamic group.

Args:
    dynamic_group_id: OCID of the dynamic group to retrieve

Returns:
    Detailed dynamic group information including matching rules for instance principals
ParametersJSON Schema
NameRequiredDescriptionDefault
dynamic_group_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('get'), but doesn't mention authentication requirements, rate limits, error conditions, or what happens if the dynamic_group_id is invalid. It partially describes the return format ('detailed dynamic group information including matching rules'), but lacks specifics on structure or completeness.

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

Conciseness4/5

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

The description is well-structured and appropriately concise: a clear purpose statement followed by Args and Returns sections. Every sentence adds value, with no redundant information. It could be slightly more front-loaded by integrating the parameter explanation into the main sentence.

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

Completeness3/5

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

For a simple read operation with one parameter and no output schema, the description is minimally adequate. It covers the basic purpose and parameter meaning, but lacks behavioral details (like error handling) that would be helpful given the absence of annotations. The mention of return content ('matching rules for instance principals') partially compensates for no output schema.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'dynamic_group_id: OCID of the dynamic group to retrieve.' This clarifies that the ID is an OCID (Oracle Cloud Identifier) and specifies its purpose. With 0% schema description coverage and only one parameter, this adequately compensates, though it doesn't explain OCID format or validation rules.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific dynamic group.' It uses a specific verb ('get') and resource ('dynamic group'), but doesn't explicitly differentiate it from sibling tools like 'get_group' or 'list_dynamic_groups' beyond mentioning it's for a 'specific' dynamic group.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_dynamic_groups' (for listing groups) or 'get_group' (for static groups), nor does it specify prerequisites or contextual constraints for retrieving a specific dynamic group.

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

get_file_systemB
Get detailed information about a specific File Storage file system.

Args:
    file_system_id: OCID of the file system to retrieve

Returns:
    Detailed file system information including metered bytes and snapshots
ParametersJSON Schema
NameRequiredDescriptionDefault
file_system_idYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool retrieves detailed information, implying a read-only operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or whether it's idempotent. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence earns its place without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given no annotations, no output schema, and low schema coverage, the description provides basic purpose and parameter semantics but lacks details on return format, error handling, or operational context. It's minimally adequate for a simple retrieval tool but doesn't fully address the gaps left by missing structured data.

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

Parameters4/5

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

The description explicitly documents the single parameter 'file_system_id' with its purpose ('OCID of the file system to retrieve'), adding meaningful context beyond the schema's minimal title. With 0% schema description coverage and only one parameter, this effectively compensates, though it could specify OCID format or constraints.

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

Purpose4/5

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

The description clearly states the verb ('Get detailed information') and resource ('a specific File Storage file system'), making the purpose unambiguous. It distinguishes from sibling 'list_file_systems' by specifying retrieval of a single item rather than listing multiple. However, it doesn't explicitly contrast with other get_* tools beyond the resource type.

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

Usage Guidelines3/5

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

The description implies usage when detailed information about a specific file system is needed, contrasting with 'list_file_systems' for listing. However, it doesn't provide explicit when-to-use guidance, prerequisites, or mention alternatives for similar retrieval operations among other get_* tools.

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

get_groupB
Get detailed information about a specific IAM group.

Args:
    group_id: OCID of the group to retrieve

Returns:
    Detailed group information including members and description
ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions retrieving 'detailed information' but lacks critical behavioral details: it doesn't specify required permissions, rate limits, error conditions, or whether it's a read-only operation. For a tool with zero annotation coverage, this is insufficient.

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

Conciseness4/5

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

The description is well-structured and concise, with a clear purpose statement followed by Args and Returns sections. Every sentence adds value, though it could be slightly more front-loaded by integrating the parameter explanation into the main description.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter, but lacks behavioral context and usage guidelines, leaving gaps for an AI agent to operate effectively.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'group_id: OCID of the group to retrieve.' Since schema description coverage is 0%, this compensates well by explaining the parameter's purpose and format (OCID). With only one parameter, this is adequate, though not exhaustive.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific IAM group.' It specifies the verb ('Get') and resource ('IAM group'), but doesn't explicitly differentiate it from sibling tools like 'list_groups' or 'get_user', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_groups' (for listing all groups) or 'get_user' (for user details), nor does it specify prerequisites or exclusions for usage.

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

get_imageB
Get detailed information about a specific compute image.

Args:
    image_id: OCID of the image to retrieve

Returns:
    Detailed image information including launch options and OS details
ParametersJSON Schema
NameRequiredDescriptionDefault
image_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool retrieves 'detailed information' and specifies the return content, but it doesn't cover critical aspects like authentication requirements, rate limits, error conditions, or whether it's a read-only operation. For a tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is well-structured and concise, with a clear purpose statement followed by bullet points for arguments and returns. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is moderately complete. It covers the basic purpose and parameter semantics but lacks behavioral details and usage guidelines. For a simple read operation, this is adequate but leaves room for improvement in guiding the agent.

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

Parameters4/5

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

The description adds meaningful context for the single parameter 'image_id' by explaining it as the 'OCID of the image to retrieve,' which clarifies its purpose beyond the schema's basic 'Image Id' title. With 0% schema description coverage and only one parameter, this compensation is effective, though it doesn't detail format constraints (e.g., OCID structure).

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific compute image.' It specifies the verb ('Get') and resource ('compute image'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'list_images' or other 'get_' tools, which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_images' for browsing images or other 'get_' tools for different resources, nor does it specify prerequisites or contexts for usage. This lack of comparative guidance limits its effectiveness.

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

get_instanceD

Get details of a specific instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to describe any behavioral traits: it doesn't indicate if this is a read-only operation, what permissions are required, whether it's idempotent, how errors are handled, or what the output format looks like. For a tool that retrieves data with no annotation coverage, this leaves critical gaps in understanding how the tool behaves.

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

Conciseness5/5

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

The description is extremely concise at one sentence with no wasted words. It's front-loaded with the core action ('Get details'), though this brevity comes at the cost of completeness. Every word serves a purpose, even if that purpose is minimal, making it structurally efficient.

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

Completeness1/5

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

Given the complexity (a data retrieval tool with no annotations, no output schema, and 0% schema description coverage), the description is severely incomplete. It doesn't explain what 'instance' refers to in this system, what details are returned, error conditions, or how it fits with sibling tools. For a tool that likely returns structured data about a resource, this minimal description is inadequate for effective use.

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

Parameters2/5

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

The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic context. The description adds no information about the 'instance_id' parameter—it doesn't explain what an instance ID is, where to find it, its format, or validation rules. While the parameter count is low (1), the description fails to compensate for the complete lack of schema documentation, leaving the parameter meaning unclear.

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

Purpose2/5

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

The description 'Get details of a specific instance' is a tautology that restates the tool name 'get_instance' without adding meaningful specificity. It doesn't distinguish this from sibling tools like 'get_vcn' or 'get_subnet' which follow the same pattern, nor does it clarify what type of instance (e.g., compute instance, database instance) or what details are included. The verb 'get' is generic, and 'instance' is ambiguous in this context.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, distinguish it from similar tools like 'list_instances' (which likely lists multiple instances), or specify contexts where fetching details for a single instance is appropriate. Without any usage context, the agent must infer everything from the tool name alone.

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

get_keyA
Get detailed information about a specific encryption key.

Note: You must first get a vault to obtain its management_endpoint.

Args:
    key_id: OCID of the key to retrieve
    management_endpoint: Management endpoint from the vault (get from vault details)

Returns:
    Detailed key information including algorithm, shape, and versions
ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYes
management_endpointYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It describes the action ('Get detailed information') and mentions the return format ('including algorithm, shape, and versions'), which adds value. However, it lacks details on permissions, rate limits, or error conditions that would be helpful for a tool accessing encryption keys.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by a prerequisite note and clear sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given no annotations and no output schema, the description does a decent job covering purpose, parameters, and return information. However, for a tool dealing with encryption keys, more behavioral context (e.g., security implications, error handling) would improve completeness, especially with 2 required parameters and no structured output documentation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains both parameters: 'key_id: OCID of the key to retrieve' and 'management_endpoint: Management endpoint from the vault (get from vault details)'. This adds clear meaning beyond the schema's minimal titles, though it doesn't specify formats or constraints.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific encryption key.' It uses a specific verb ('Get') and identifies the resource ('encryption key'), but doesn't explicitly differentiate from sibling tools like 'list_keys' or 'get_vault' beyond the specificity of retrieving a single key.

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

Usage Guidelines4/5

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

The description provides clear context for usage with the note: 'You must first get a vault to obtain its management_endpoint.' This indicates a prerequisite and workflow guidance. However, it doesn't explicitly mention when to use this versus alternatives like 'list_keys' or other sibling tools.

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

get_load_balancerB
Get detailed information about a specific classic load balancer.

Args:
    load_balancer_id: OCID of the load balancer to retrieve

Returns:
    Detailed load balancer information including backend sets, listeners, and certificates
ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get detailed information'), which implies non-destructive behavior, but doesn't address authentication needs, rate limits, error conditions, or whether it requires specific permissions. The description is minimal and lacks critical operational context.

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

Conciseness4/5

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

The description is well-structured with clear sections (Args, Returns) and front-loaded purpose. It's concise with no wasted words, though the 'Returns' section could be slightly more detailed given the lack of output schema.

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

Completeness3/5

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

Given the tool's moderate complexity (single parameter, no annotations, no output schema), the description is adequate but has gaps. It covers the parameter semantics and return scope, but lacks behavioral context (e.g., authentication, errors) and doesn't fully guide usage relative to siblings. It's minimally viable but not comprehensive.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It explicitly documents the single parameter 'load_balancer_id' with its purpose ('OCID of the load balancer to retrieve'), adding meaningful semantics beyond the bare schema. Since there's only one parameter, this is sufficient for a high score, though not a 5 as it doesn't explain OCID format or sourcing.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('about a specific classic load balancer'), distinguishing it from generic 'get' operations. However, it doesn't explicitly differentiate from sibling tools like 'get_network_load_balancer' or 'list_load_balancers', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list_load_balancers' or 'get_network_load_balancer'. It mentions retrieving 'a specific classic load balancer' but doesn't clarify prerequisites, such as needing the OCID first from a list operation.

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

get_namespaceA
Get the Object Storage namespace for the tenancy.

The namespace is a unique identifier for the tenancy in Object Storage.
It's required for all Object Storage operations.

Returns:
    Dictionary with namespace information
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It states this is a read operation ('Get') and mentions the namespace is a 'unique identifier,' which implies it's a lookup rather than a mutation. However, it doesn't disclose authentication requirements, rate limits, error conditions, or whether the result is cached. The description adds basic context but lacks comprehensive behavioral details.

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

Conciseness5/5

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

The description is perfectly front-loaded with the core purpose in the first sentence. Each subsequent sentence adds essential context without redundancy. The three-sentence structure efficiently explains what it does, why it matters, and what it returns, with zero wasted words.

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

Completeness4/5

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

For a zero-parameter read-only tool with no output schema, the description is nearly complete. It explains the purpose, importance, and return format ('Dictionary with namespace information'). The main gap is lack of behavioral details like authentication or error handling, but given the tool's simplicity, the description provides sufficient context for basic usage.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100% (empty schema is fully described as having no parameters). The description appropriately doesn't discuss parameters since none exist. A baseline of 4 is appropriate for zero-parameter tools where the schema fully covers the absence of inputs.

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

Purpose5/5

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

The description clearly states the specific action ('Get the Object Storage namespace for the tenancy') and resource ('Object Storage namespace'), distinguishing it from siblings that retrieve other OCI resources like alarms, databases, or instances. It explicitly identifies what makes this tool unique among the many get_* tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'It's required for all Object Storage operations.' This tells the agent when this tool is necessary (as a prerequisite for Object Storage work) and implicitly when not to use it (for non-Object Storage tasks). It effectively positions this as a foundational tool.

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

get_network_load_balancerB
Get detailed information about a specific network load balancer.

Args:
    network_load_balancer_id: OCID of the network load balancer to retrieve

Returns:
    Detailed network load balancer information including backend sets and listeners
ParametersJSON Schema
NameRequiredDescriptionDefault
network_load_balancer_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves detailed information, implying a read-only operation, but doesn't cover authentication needs, rate limits, error conditions, or what 'detailed information' entails beyond backend sets and listeners. This leaves significant gaps for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is well-structured and concise, with a clear purpose statement followed by Args and Returns sections. Every sentence adds value without redundancy, making it easy to parse and front-loaded with essential information.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is moderately complete. It covers the purpose and parameter semantics adequately but lacks behavioral details like error handling or authentication, and the return value description is vague ('detailed information including backend sets and listeners').

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'network_load_balancer_id: OCID of the network load balancer to retrieve.' This clarifies that the ID is an OCID (Oracle Cloud Identifier) and its purpose, compensating for the 0% schema description coverage. However, it doesn't provide format examples or validation rules.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific network load balancer.' It specifies the verb ('Get') and resource ('network load balancer'), but doesn't explicitly differentiate it from sibling tools like 'get_load_balancer' or 'list_network_load_balancers' beyond the specificity of 'network' in the name.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_load_balancer' (which might be for classic load balancers) or 'list_network_load_balancers' (which lists multiple), nor does it specify prerequisites or exclusions for usage.

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

get_network_security_groupB
Get detailed information about a specific Network Security Group.

Args:
    nsg_id: OCID of the NSG to retrieve

Returns:
    Detailed NSG information with all security rules
ParametersJSON Schema
NameRequiredDescriptionDefault
nsg_idYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' and 'all security rules,' which hints at a read-only operation, but it doesn't explicitly confirm safety (e.g., no destructive effects), mention authentication needs, rate limits, or error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is well-structured and concise, using a clear purpose statement followed by 'Args' and 'Returns' sections. Each sentence adds value without redundancy. It could be slightly more front-loaded by integrating the parameter info into the main description, but overall, it's efficient and easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no nested objects) and lack of annotations or output schema, the description is moderately complete. It covers the purpose and parameter semantics adequately but lacks behavioral details (e.g., safety, auth) and doesn't fully explain the return value beyond 'Detailed NSG information with all security rules.' For a read operation, this is minimal but viable.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'nsg_id: OCID of the NSG to retrieve.' This clarifies that 'nsg_id' is an Oracle Cloud Identifier (OCID), which is crucial semantic information not present in the input schema (which has 0% description coverage). Since there's only one parameter, this effectively compensates for the schema's lack of detail.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific Network Security Group.' It uses a specific verb ('Get') and resource ('Network Security Group'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_network_security_groups' or 'get_security_list', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_network_security_groups' for listing multiple NSGs or 'get_security_list' for related resources, nor does it specify prerequisites or contexts for usage. The absence of such guidance leaves the agent to infer usage from the tool name alone.

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

get_oke_clusterA
Get detailed information about a specific OKE cluster.

Args:
    cluster_id: OCID of the cluster

Returns:
    Detailed cluster information including:
    - Kubernetes version and available upgrades
    - Cluster endpoints (public/private)
    - Network configuration (VCN, subnets, CIDR blocks)
    - Add-ons configuration (dashboard, tiller)
    - Image policy settings
    - Cluster metadata and options
ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It implies a read-only operation ('Get detailed information'), which is consistent with typical 'get' tools, but does not disclose behavioral traits such as authentication requirements, rate limits, error conditions, or whether it's idempotent. It adds value by detailing the return content, but lacks operational context.

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

Conciseness5/5

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

The description is well-structured and front-loaded, starting with a clear purpose statement, followed by organized sections for Args and Returns. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

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

Completeness4/5

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

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is largely complete. It covers the purpose, parameter semantics, and detailed return information. However, it lacks output schema, so the return details are helpful but informal, and behavioral aspects like error handling are omitted, leaving minor gaps.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It explicitly defines the single parameter 'cluster_id' as 'OCID of the cluster', adding crucial semantic meaning beyond the schema's generic 'Cluster Id' title. This clarifies the format and purpose of the parameter, effectively compensating for the low schema coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Get detailed information') and target resource ('about a specific OKE cluster'), distinguishing it from sibling tools like 'list_oke_clusters' (which lists multiple clusters) and 'get_oke_cluster_kubeconfig' (which retrieves a specific configuration file). The purpose is precise and unambiguous.

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

Usage Guidelines4/5

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

The description implicitly suggests usage when detailed information about a specific cluster is needed, as opposed to listing clusters or getting other cluster-related data. However, it does not explicitly state when not to use it or name alternatives like 'list_oke_clusters' for overviews, leaving some room for improvement in explicit guidance.

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

get_oke_cluster_kubeconfigA
Get the kubeconfig file content for accessing an OKE cluster.

Args:
    cluster_id: OCID of the cluster

Returns:
    Kubeconfig content in YAML format that can be saved to ~/.kube/config
    or used with kubectl --kubeconfig flag
ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves kubeconfig content but omits critical behavioral details: whether this requires specific permissions, if the cluster must be active, potential rate limits, or if the operation is idempotent. For a tool that accesses sensitive cluster credentials, this is a significant gap.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by dedicated Args and Returns sections. Every sentence earns its place by explaining what the tool does, what it requires, and what it produces, with zero redundant information.

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

Completeness3/5

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

Given the tool's moderate complexity (retrieving sensitive configuration data) with no annotations and no output schema, the description is partially complete. It adequately explains the purpose and return format but lacks behavioral context about permissions, cluster state requirements, and security implications that would be important for safe usage.

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

Parameters4/5

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

The description explicitly documents the single parameter 'cluster_id' with its purpose ('OCID of the cluster'), adding essential semantic meaning beyond the schema's 0% coverage. While it doesn't elaborate on OCID format or validation, it provides sufficient context for the agent to understand what this parameter represents.

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

Purpose5/5

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

The description clearly states the specific action ('Get the kubeconfig file content') and resource ('for accessing an OKE cluster'), distinguishing it from sibling tools like 'get_oke_cluster' which likely retrieves cluster metadata rather than configuration files. The purpose is unambiguous and well-specified.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as whether it's for initial cluster setup, troubleshooting, or automation. It doesn't mention prerequisites like cluster state requirements or authentication context, leaving usage context entirely implicit.

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

get_oke_node_poolA
Get detailed information about a specific node pool.

Args:
    node_pool_id: OCID of the node pool

Returns:
    Detailed node pool information including:
    - Node configuration (shape, image, SSH keys)
    - Individual node details (IPs, state, fault domains)
    - Placement configuration across ADs
    - Node eviction settings
    - Node pool cycling details
    - Initial node labels
    - Security settings (NSGs, encryption)
ParametersJSON Schema
NameRequiredDescriptionDefault
node_pool_idYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It clearly indicates a read-only operation ('Get detailed information'), which is appropriate. However, it doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or whether the operation is idempotent. The return details are listed but lack context on format or potential omissions.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose. It uses bullet points efficiently to detail return values without unnecessary elaboration. Every sentence earns its place, and there's no redundant or verbose content.

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

Completeness4/5

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

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is reasonably complete. It covers purpose, parameter semantics, and return details. However, it lacks information on authentication, error handling, or operational constraints, which would enhance completeness for a cloud resource tool.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'node_pool_id: OCID of the node pool.' This clarifies the parameter's purpose and format (OCID), which is valuable since schema description coverage is 0%. However, it doesn't provide examples or validation rules beyond the basic definition.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific node pool.' It specifies the verb ('Get') and resource ('node pool'), and distinguishes it from sibling tools like 'list_oke_node_pools' by focusing on a specific instance rather than listing multiple.

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

Usage Guidelines4/5

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

The description implies usage context by specifying 'a specific node pool' and providing the required 'node_pool_id' parameter. It differentiates from 'list_oke_node_pools' by focusing on detailed retrieval vs. listing. However, it lacks explicit when-not-to-use guidance or alternative tool mentions beyond this implicit distinction.

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

get_oke_work_requestB
Get detailed information about a specific OKE work request.

Args:
    work_request_id: OCID of the work request

Returns:
    Detailed work request information including:
    - Operation type and status
    - Completion percentage
    - Associated resources and actions
    - Timing information
ParametersJSON Schema
NameRequiredDescriptionDefault
work_request_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' and lists return fields, but doesn't cover critical aspects like whether it's a read-only operation, error handling, authentication requirements, rate limits, or latency. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is well-structured and concise. It starts with a clear purpose statement, followed by 'Args:' and 'Returns:' sections that efficiently document inputs and outputs. Every sentence adds value without redundancy, making it easy to scan and understand.

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

Completeness3/5

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

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and parameter semantics well, but lacks behavioral details and usage guidelines. Without annotations or output schema, it should ideally provide more context on error cases or response structure to be fully complete.

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

Parameters4/5

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

The description adds meaningful context beyond the input schema. The schema has 0% description coverage (only a title 'Work Request Id'), but the description specifies that 'work_request_id' is an 'OCID of the work request', clarifying its format and purpose. Since there's only one parameter, this is sufficient to compensate for the low schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific OKE work request.' It specifies the verb ('Get') and resource ('OKE work request'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'list_oke_work_requests' or 'get_oke_cluster', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_oke_work_requests' for listing multiple work requests or other 'get_' tools for different resources. There's no context on prerequisites, such as needing a specific work request ID, or exclusions.

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

get_policyB
Get detailed information about a specific IAM policy.

Args:
    policy_id: OCID of the policy to retrieve

Returns:
    Detailed policy information including all policy statements
ParametersJSON Schema
NameRequiredDescriptionDefault
policy_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves detailed information, implying a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or what 'detailed information' entails beyond policy statements. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no nested objects) and lack of annotations or output schema, the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks details on usage guidelines, behavioral traits, and return value specifics. For a simple read operation, this is acceptable but not comprehensive.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'policy_id: OCID of the policy to retrieve.' Since schema description coverage is 0% (the schema only provides a title 'Policy Id' without explanation), this compensates well by specifying the format (OCID) and purpose. With only one parameter, the baseline is high, and the description effectively clarifies its semantics beyond the minimal schema.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific IAM policy.' It uses a specific verb ('Get') and resource ('IAM policy'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_policies' or other 'get_' tools, which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_policies' for browsing policies or other 'get_' tools for different resources, nor does it specify prerequisites or contexts for usage. This lack of comparative guidance limits its effectiveness.

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

get_security_listB
Get detailed information about a specific security list.

Args:
    security_list_id: OCID of the security list to retrieve

Returns:
    Detailed security list with all ingress and egress rules
ParametersJSON Schema
NameRequiredDescriptionDefault
security_list_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves detailed information, implying a read-only operation, but doesn't clarify permissions needed, rate limits, error conditions, or whether it's idempotent. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence earns its place: the first states what the tool does, the second explains the parameter, and the third describes the return value. There's no wasted text.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no nested objects) and lack of annotations or output schema, the description is minimally complete. It covers the basic purpose, parameter, and return value, but doesn't address behavioral aspects like authentication, errors, or performance. For a simple read operation, this might be adequate, but it leaves room for improvement in transparency.

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

Parameters3/5

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

The description adds minimal parameter semantics beyond the schema. It explains that 'security_list_id' is the 'OCID of the security list to retrieve,' which clarifies the parameter's purpose and format (OCID). However, with 0% schema description coverage and only one parameter, this provides some value but doesn't fully compensate for the lack of schema documentation. The baseline for 0 parameters would be 4, but here there's one parameter with partial explanation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific security list.' It specifies the verb ('Get') and resource ('security list'), and distinguishes it from sibling 'list_security_lists' by focusing on a single item. However, it doesn't explicitly differentiate from other 'get_' tools beyond the resource type.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for retrieving a specific security list by ID, it doesn't mention sibling tools like 'list_security_lists' for browsing or other 'get_' tools for different resources. There's no context about prerequisites or when-not-to-use scenarios.

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

get_subnetB
Get detailed information about a specific subnet.

Args:
    subnet_id: OCID of the subnet to retrieve

Returns:
    Detailed subnet information including CIDR, security lists, and routing
ParametersJSON Schema
NameRequiredDescriptionDefault
subnet_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates this is a read operation ('Get detailed information'), which implies non-destructive behavior, but doesn't cover important aspects like authentication requirements, rate limits, error conditions, or whether the data is real-time. The description lacks depth for a tool that likely interacts with cloud infrastructure.

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

Conciseness5/5

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

The description is appropriately sized and well-structured, with a clear purpose statement followed by brief sections for 'Args' and 'Returns'. Every sentence earns its place by providing essential information without redundancy, making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is adequate but has gaps. It explains the parameter and return content, but lacks behavioral context like error handling or performance characteristics. For a cloud resource retrieval tool, more details on permissions or data freshness would improve completeness.

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

Parameters4/5

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

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains that 'subnet_id' is an 'OCID of the subnet to retrieve', clarifying the parameter's purpose and format (Oracle Cloud Identifier). This compensates well for the schema's lack of documentation, though it doesn't detail validation rules or examples.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('about a specific subnet'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_subnets' or 'get_vcn', which would require mentioning it retrieves a single subnet by ID rather than listing multiple.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_subnets' for browsing or 'get_vcn' for related network information, nor does it specify prerequisites such as needing the subnet's OCID. Usage is implied but not explicitly stated.

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

get_tenancy_infoB
Get detailed information about a tenancy.

Args:
    tenancy_id: OCID of the tenancy

Returns:
    Tenancy details including name, home region, and description
ParametersJSON Schema
NameRequiredDescriptionDefault
tenancy_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying it's a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or what happens if the tenancy_id is invalid. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is well-structured and front-loaded, with a clear purpose statement followed by specific sections for Args and Returns. Every sentence earns its place, providing essential information without redundancy or fluff.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is adequate but not complete. It explains the parameter and return values, but lacks behavioral details like error handling or authentication needs. For a read-only tool, this is minimally viable but leaves gaps in operational context.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'tenancy_id: OCID of the tenancy.' This clarifies that it's an Oracle Cloud Identifier, which is crucial semantic information not evident from the schema alone (which has 0% description coverage). Since there's only one parameter, the description adequately compensates for the schema's lack of detail.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a tenancy.' It specifies the verb ('Get') and resource ('tenancy'), making it easy to understand. However, it doesn't differentiate from sibling tools like 'get_user' or 'get_vcn' beyond the resource type, which prevents a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or comparisons to sibling tools (e.g., 'list_tenancies' if it existed), leaving the agent to infer usage based on the name alone.

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

get_userB
Get detailed information about a specific IAM user.

Args:
    user_id: OCID of the user to retrieve

Returns:
    Detailed user information including capabilities, MFA status, and group memberships
ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it indicates this is a read operation ('Get detailed information'), it doesn't mention authentication requirements, rate limits, error conditions, or whether the operation is idempotent. For a tool accessing IAM resources with no annotation coverage, this represents a significant gap.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence earns its place: the first establishes the tool's function, the second clarifies the single parameter, and the third describes the return value. No wasted words or redundancy.

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

Completeness3/5

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

For a single-parameter read tool with no output schema, the description provides adequate but minimal coverage. It explains what the tool does and what it returns, but lacks important context about authentication, error handling, and differentiation from sibling tools. The absence of annotations means the description should do more to compensate, particularly for an IAM-related operation.

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

Parameters4/5

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

With 0% schema description coverage and only one parameter, the description adds substantial value by explaining that 'user_id' is an 'OCID of the user to retrieve'. This provides crucial semantic context that the schema alone lacks. The description doesn't explain OCID format or where to obtain it, but it meaningfully compensates for the schema's lack of documentation.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('about a specific IAM user'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_users' or 'get_group', which provide related but different functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'get_user' over 'list_users' (which likely returns multiple users) or 'get_group' (which might return group information including users), leaving the agent without context for tool selection.

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

get_vaultB
Get detailed information about a specific KMS vault.

Args:
    vault_id: OCID of the vault to retrieve

Returns:
    Detailed vault information including crypto and management endpoints
ParametersJSON Schema
NameRequiredDescriptionDefault
vault_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get'), which implies it's non-destructive, but doesn't cover other critical aspects like authentication requirements, rate limits, error conditions, or response format details. The mention of 'detailed vault information' is vague and lacks specifics on what 'detailed' entails.

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

Conciseness5/5

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

The description is well-structured and concise, with zero wasted words. It uses a clear header format ('Args:', 'Returns:') and bullet-like presentation, making it easy to parse. Every sentence adds value, and the information is front-loaded with the core purpose stated first.

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

Completeness3/5

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

Given the tool's moderate complexity (a read operation with one parameter), no annotations, and no output schema, the description is partially complete. It covers the purpose and parameter semantics adequately but lacks behavioral details and usage guidelines. For a tool in this context, it should ideally include more about authentication, error handling, or output structure to be fully helpful.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'vault_id: OCID of the vault to retrieve.' This clarifies that 'vault_id' is an OCID (Oracle Cloud Identifier), which is crucial semantic information not present in the schema (which has 0% description coverage). Since there's only one parameter, the description effectively compensates for the schema's lack of detail.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific KMS vault.' It uses a specific verb ('Get') and resource ('KMS vault'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_vaults' or 'get_key', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_vaults' for listing multiple vaults or 'get_key' for related resources, nor does it specify prerequisites or contexts for usage. This leaves the agent without explicit usage instructions.

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

get_vcnB
Get detailed information about a specific VCN.

Args:
    vcn_id: OCID of the VCN to retrieve

Returns:
    Detailed VCN information including CIDR blocks, DNS configuration, and default resources
ParametersJSON Schema
NameRequiredDescriptionDefault
vcn_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information (implying a read operation) and mentions the return content, but doesn't cover critical aspects like authentication requirements, error handling, rate limits, or whether it's idempotent. For a read tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is well-structured and front-loaded: the first sentence states the purpose, followed by clear 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy. It's appropriately sized for a simple retrieval tool.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but has gaps. It covers the basic purpose and parameter semantics but lacks usage guidelines and behavioral details (e.g., auth, errors). Without an output schema, the 'Returns' section is helpful but not exhaustive.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: it explains that 'vcn_id' is the 'OCID of the VCN to retrieve,' which clarifies the parameter's purpose and format (OCID). Since schema description coverage is 0%, this compensates well, though it doesn't detail OCID structure or validation rules. With only one parameter, the baseline is high.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific VCN.' It specifies the verb ('Get') and resource ('VCN'), and distinguishes it from sibling tools like 'list_vcns' by focusing on a single VCN rather than listing multiple. However, it doesn't explicitly differentiate from other 'get_' tools (e.g., 'get_subnet'), so it's not a perfect 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_vcns' for listing all VCNs or other 'get_' tools for different resources. There's no context about prerequisites (e.g., needing the VCN ID) or exclusions, leaving the agent to infer usage from the tool name alone.

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

get_vnicB
Get detailed information about a specific VNIC.

Args:
    vnic_id: OCID of the VNIC to retrieve

Returns:
    Detailed VNIC information including IP addresses, subnet, and NSG associations
ParametersJSON Schema
NameRequiredDescriptionDefault
vnic_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get detailed information'), which implies it's non-destructive, but doesn't mention authentication requirements, rate limits, error conditions, or what happens if the VNIC doesn't exist. The return statement adds some value but is incomplete.

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

Conciseness5/5

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

The description is perfectly structured and concise. It uses three clear sections (purpose, args, returns) with no wasted words. Every sentence earns its place by providing essential information in a well-organized format.

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

Completeness3/5

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

Given no annotations and no output schema, the description does a decent job but has gaps. It explains the parameter well and gives a high-level overview of return data, but doesn't provide complete behavioral context (authentication, errors) or detailed output structure. For a simple retrieval tool, it's adequate but not comprehensive.

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

Parameters4/5

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

The description provides excellent parameter semantics despite 0% schema description coverage. It clearly explains that 'vnic_id' is the 'OCID of the VNIC to retrieve,' adding crucial context about the parameter format and purpose that the schema lacks. For a single parameter tool, this is highly effective.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific VNIC.' It uses a specific verb ('Get') and resource ('VNIC'), but doesn't explicitly differentiate from sibling tools like 'list_vnics' or other 'get_' tools. The purpose is clear but lacks sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools like 'list_vnics' for listing multiple VNICs or other 'get_' tools for different resources. There's no context about prerequisites or when this specific retrieval is appropriate.

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

get_volumeB
Get detailed information about a specific Block Storage volume.

Args:
    volume_id: OCID of the volume to retrieve

Returns:
    Detailed volume information including size, performance tier, and backup policy
ParametersJSON Schema
NameRequiredDescriptionDefault
volume_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves detailed information, implying a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or whether it's safe to invoke. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is well-structured and front-loaded, with a clear purpose statement followed by specific sections for 'Args' and 'Returns.' Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no nested objects) and lack of annotations or output schema, the description is moderately complete. It covers the basic purpose and parameter semantics but lacks behavioral details and usage guidelines. For a simple retrieval tool, this is adequate but has clear gaps, especially in guiding the agent on when to use it.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'volume_id: OCID of the volume to retrieve.' Since schema description coverage is 0% (the schema only provides a title 'Volume Id' and type 'string'), this clarifies that 'OCID' refers to Oracle Cloud Identifier, which is crucial for correct usage. However, it doesn't detail the format or constraints of OCIDs, preventing a perfect score.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific Block Storage volume.' It specifies the verb ('Get') and resource ('Block Storage volume'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_boot_volume' or 'list_volumes', which prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_volumes' for browsing volumes or 'get_boot_volume' for similar retrieval operations. Without any context on usage scenarios or exclusions, the agent lacks direction for tool selection.

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

list_alarmsA
List all alarms in a compartment.

Args:
    compartment_id: OCID of the compartment to list alarms from

Returns:
    List of alarms with their query, severity, state, and destinations
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('List') and specifies the return format, it doesn't mention important behavioral aspects like pagination, rate limits, authentication requirements, error conditions, or whether the operation is safe/destructive. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence serves a purpose, though the 'Returns' section could be more specific about the data structure. The information is front-loaded with the core functionality stated first.

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

Completeness3/5

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

Given the tool's moderate complexity (single parameter list operation), no annotations, and no output schema, the description provides basic operational context but lacks completeness. It explains what the tool does and the parameter, but doesn't cover behavioral aspects, error handling, or detailed return format. For a tool with no structured metadata, it's minimally adequate but leaves important questions unanswered.

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

Parameters4/5

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

The description explicitly documents the single parameter ('compartment_id: OCID of the compartment to list alarms from'), adding crucial semantic meaning beyond the schema's minimal coverage (0%). Since there's only one parameter and the description fully explains it, this compensates well for the schema's lack of description, though it doesn't provide format examples or validation rules.

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

Purpose5/5

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

The description clearly states the specific action ('List all alarms') and the resource ('in a compartment'), distinguishing it from sibling tools like 'get_alarm' (which retrieves a single alarm) and other list_* tools for different resources. It provides a precise verb+resource combination that leaves no ambiguity about the tool's function.

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

Usage Guidelines3/5

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

The description implies usage context by specifying 'in a compartment' and listing a required compartment_id parameter, but doesn't explicitly state when to use this tool versus alternatives like 'get_alarm' or other list_* tools. It provides basic operational context but lacks explicit guidance on tool selection or exclusion criteria.

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

list_autonomous_databasesB
List all Autonomous Databases in a compartment.

Args:
    compartment_id: OCID of the compartment to list Autonomous Databases from

Returns:
    List of Autonomous Databases with their configuration, workload type, and connection info
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states the tool lists databases and describes the return content (configuration, workload type, connection info), it lacks critical behavioral details such as pagination behavior, rate limits, authentication requirements, error conditions, or whether the operation is read-only (implied but not stated). For a list operation with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by 'Args:' and 'Returns:' sections. Every sentence adds value: the first sentence states the core functionality, the second explains the parameter, and the third describes the return content. There's no redundant or wasted text, making it easy to parse quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (list operation with one parameter) and lack of annotations and output schema, the description provides basic completeness: it states what the tool does, explains the parameter, and outlines return content. However, it lacks important contextual details like pagination, sorting/filtering options, error handling, or performance characteristics that would be helpful for an AI agent. The absence of an output schema means the description should ideally provide more detail about the return structure.

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

Parameters4/5

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

The description adds meaningful context for the single parameter 'compartment_id' by explaining it's the 'OCID of the compartment to list Autonomous Databases from.' This clarifies the parameter's purpose beyond what the schema provides (which has 0% description coverage, only showing 'Compartment Id' as title). Since there's only one parameter and the description fully explains it, this compensates well for the schema's lack of detail.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all Autonomous Databases in a compartment.' It specifies the verb ('List') and resource ('Autonomous Databases'), and distinguishes it from sibling tools like 'get_autonomous_database' (singular retrieval) and 'list_databases' (different resource type). However, it doesn't explicitly differentiate from other list tools beyond the resource name.

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

Usage Guidelines3/5

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

The description implies usage context by specifying 'in a compartment' and listing the required 'compartment_id' parameter, which suggests this tool is for compartment-scoped listing. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_autonomous_database' for single database retrieval or other list tools for different resources. No exclusions or prerequisites are mentioned.

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

list_availability_domainsA
List all availability domains in a compartment.

Args:
    compartment_id: OCID of the compartment (typically use tenancy OCID for root)

Returns:
    List of availability domains with their names and IDs
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it states this is a list operation (implying read-only) and describes the return format, it doesn't address important behavioral aspects like pagination, rate limits, authentication requirements, error conditions, or whether this operation has any side effects. The description provides basic functional information but lacks operational context.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose statement, Args, Returns) and uses only three sentences total. Each sentence earns its place by providing distinct information. The structure is front-loaded with the core purpose first, followed by parameter and return details. Minor improvement could be integrating the guidance more naturally into the flow.

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

Completeness3/5

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

For a simple list operation with 1 parameter and no output schema, the description provides adequate functional coverage but lacks operational context. It explains what the tool does and what it returns, but doesn't address how it behaves (pagination, errors, etc.). Given the absence of annotations and output schema, the description should ideally provide more complete behavioral context for optimal agent understanding.

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

Parameters4/5

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

The description adds significant value beyond the input schema, which has 0% description coverage. The Args section explains that 'compartment_id' is an 'OCID of the compartment' and provides practical guidance: 'typically use tenancy OCID for root'. This clarifies the parameter's purpose and offers usage advice that isn't in the schema. With only 1 parameter, the description effectively documents its semantics.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('availability domains in a compartment'), making the purpose specific and unambiguous. It distinguishes this tool from siblings like 'list_regions' or 'list_fault_domains' by focusing on availability domains specifically.

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

Usage Guidelines3/5

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

The description provides implied usage context by mentioning 'typically use tenancy OCID for root' in the Args section, which helps guide parameter selection. However, it lacks explicit guidance on when to use this tool versus alternatives like 'list_regions' or 'list_fault_domains', and doesn't mention any prerequisites or exclusions.

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

list_boot_volumesB
List all boot volumes in a compartment.

Args:
    compartment_id: OCID of the compartment to list boot volumes from
    availability_domain: Optional AD to filter boot volumes

Returns:
    List of boot volumes with their size, state, and source image information
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
availability_domainNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a list operation (implying read-only) and describes the return format, but lacks critical details like pagination behavior, rate limits, authentication requirements, or error conditions for a cloud API tool.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by separate Args and Returns sections. Every sentence adds value with no wasted words, making it easy to parse quickly.

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

Completeness3/5

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

For a simple list tool with 2 parameters and no output schema, the description covers the basics (purpose, parameters, return format) adequately. However, without annotations or output schema, it should ideally mention more behavioral aspects like pagination or error handling to be fully complete.

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

Parameters4/5

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

The description adds meaningful context for both parameters beyond the schema (0% coverage). It explains that 'compartment_id' identifies where to list from and 'availability_domain' is an optional filter, clarifying their roles. However, it doesn't specify format details like OCID structure or AD naming conventions.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('boot volumes') with scope ('in a compartment'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_boot_volume' (singular) or other list tools, which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_boot_volume' (for a specific volume) or other list tools. It mentions optional filtering by availability_domain but doesn't explain when this is useful or what happens if omitted.

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

list_bucketsA
List all Object Storage buckets in a compartment.

Args:
    compartment_id: OCID of the compartment to list buckets from
    namespace: Optional namespace (if not provided, will be fetched automatically)

Returns:
    List of buckets with their configurations and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
namespaceNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the action ('List') and return type ('List of buckets'), but doesn't disclose behavioral traits like pagination, rate limits, permissions required, or error handling. For a read operation with no annotations, this leaves significant gaps in understanding how the tool behaves.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections are clear and efficient, with no redundant information. Every sentence adds value, making it appropriately sized and easy to parse.

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

Completeness3/5

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

Given no annotations and no output schema, the description provides basic purpose and parameter semantics but lacks details on behavioral aspects (e.g., pagination, errors) and return format specifics. For a simple list tool, it's minimally adequate but incomplete for robust agent use without additional context.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'compartment_id' as 'OCID of the compartment to list buckets from' and 'namespace' as 'Optional namespace (if not provided, will be fetched automatically)', clarifying purpose and default behavior beyond the schema's basic types. This covers both parameters effectively, though not exhaustively.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('Object Storage buckets in a compartment'), specifying scope with 'all'. It distinguishes from sibling tools like 'get_bucket' (singular retrieval) and 'list_compartments' (different resource), making the purpose specific and differentiated.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While it implicitly suggests use for listing buckets, it doesn't mention prerequisites (e.g., authentication), exclusions, or compare to other list tools (e.g., 'list_vaults' for different resources). The description lacks explicit usage context or alternatives.

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

list_budgetsA
List all budgets in a compartment.

Args:
    compartment_id: OCID of the compartment to list budgets from

Returns:
    List of budgets with amount, reset period, actual spend, and forecasted spend
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the return format but does not disclose behavioral traits such as pagination, rate limits, authentication requirements, or error handling. For a read operation with no annotations, this leaves significant gaps in understanding how the tool behaves.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by structured sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and well-organized for quick comprehension.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic operation and return format but lacks details on behavioral aspects like pagination or error handling, which are important for a list operation in a cloud service context.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining the 'compartment_id' parameter as 'OCID of the compartment to list budgets from', adding semantic meaning beyond the schema's basic type. However, it does not cover other potential parameters or constraints, though only one parameter exists.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('budgets in a compartment'), specifying the scope ('all budgets') and distinguishing it from sibling tools like 'get_budget' which likely retrieves a single budget. It provides specific, actionable purpose.

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

Usage Guidelines3/5

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

The description implies usage for listing budgets within a compartment but does not explicitly state when to use this tool versus alternatives like 'get_budget' or other list_* tools. It provides basic context but lacks explicit guidance on exclusions or comparisons.

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

list_compartmentsB

List all compartments accessible to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'accessible to the user', hinting at permission-based filtering, but doesn't disclose behavioral traits like pagination, rate limits, error conditions, or output format. For a list operation with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the complexity (a list operation with many sibling tools), no annotations, and no output schema, the description is incomplete. It lacks details on return values, pagination, or how 'accessible' is determined, which are crucial for an agent to use this tool effectively in context.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score of 4 for adequately handling the lack of parameters.

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

Purpose4/5

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

The description clearly states the action ('List all compartments') and the resource ('compartments accessible to the user'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get_tenancy_info' or 'list_oci_profiles', but the verb 'list' and resource 'compartments' provide enough specificity for basic clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With many sibling tools (e.g., 'get_tenancy_info', 'list_oci_profiles'), the description lacks context about whether this is for general compartment discovery, permission checks, or other use cases, leaving the agent to infer usage.

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

list_databasesB
List all databases in a compartment, optionally filtered by DB System.

Args:
    compartment_id: OCID of the compartment to list databases from
    db_system_id: Optional OCID of the DB System to filter databases

Returns:
    List of databases with their state, version, and connection information
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
db_system_idNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the return format (list with state, version, connection info), but doesn't disclose critical behavioral traits like pagination, rate limits, authentication requirements, error conditions, or whether it's a read-only operation. For a list operation with zero annotation coverage, this is inadequate.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value: the first states the action, the next two explain parameters, and the last describes returns. No wasted words.

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

Completeness3/5

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

Given 2 parameters with 0% schema coverage and no output schema, the description does well on parameters but lacks behavioral context. It explains what the tool returns but doesn't cover pagination, errors, or operational constraints. For a list tool with no annotations, this is minimally adequate but leaves gaps.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It clearly explains both parameters: 'compartment_id' as 'OCID of the compartment to list databases from' and 'db_system_id' as 'Optional OCID of the DB System to filter databases'. This adds essential meaning beyond the schema's bare titles, though it doesn't detail OCID format or validation.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('databases in a compartment'), with optional filtering by DB System. It distinguishes from siblings like 'get_database' (singular retrieval) and 'list_db_systems' (different resource), but doesn't explicitly differentiate from 'list_autonomous_databases' (a specific database type).

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

Usage Guidelines3/5

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

The description implies usage for listing databases within a compartment, optionally filtered. It doesn't provide explicit when-to-use vs. when-not-to-use guidance, nor does it mention alternatives like 'list_autonomous_databases' for specific database types. The context is clear but lacks sibling differentiation.

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

list_db_nodesB
List DB Nodes in a compartment, optionally filtered by DB System.
Note: compartment_id is always required by the SDK.
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
db_system_idNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions that 'compartment_id is always required by the SDK', which adds useful behavioral context about mandatory parameters. However, it doesn't disclose other traits like whether this is a read-only operation (implied by 'List'), potential rate limits, pagination behavior, or what the output looks like (no output schema exists).

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

Conciseness5/5

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

The description is extremely concise with two sentences that directly address purpose and a key behavioral note. It is front-loaded with the main action and resource, and the second sentence adds necessary context without redundancy. Every word earns its place.

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

Completeness3/5

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

Given no annotations, 0% schema coverage, and no output schema, the description is minimally complete. It covers the basic purpose and hints at parameter usage, but lacks details on behavior, output format, error conditions, or sibling differentiation. For a simple list tool, this is adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'compartment_id is always required' and mentions optional filtering by 'DB System', which maps to the two parameters (compartment_id and db_system_id). However, it doesn't provide details on parameter formats, valid values, or examples, leaving gaps in semantic understanding.

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

Purpose4/5

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

The description clearly states the action ('List') and resource ('DB Nodes in a compartment'), with optional filtering by DB System. It distinguishes from sibling tools like 'get_db_node' (singular) and 'list_db_systems', but doesn't explicitly differentiate from other list tools like 'list_databases' or 'list_instances' beyond the resource name.

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

Usage Guidelines3/5

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

The description implies usage context by mentioning 'optionally filtered by DB System' and notes that 'compartment_id is always required by the SDK', which provides some guidance on parameter requirements. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_db_node' for single nodes or 'list_db_systems' for systems, nor does it mention prerequisites or exclusions.

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

list_db_systemsC

List DB Systems in a compartment.

ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't cover critical details like pagination, rate limits, authentication requirements, or what the output format looks like (e.g., JSON array of systems). For a tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('List DB Systems'), making it easy to parse quickly. No unnecessary words or redundancy are present.

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

Completeness2/5

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

Given the lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't address behavioral traits (e.g., pagination), parameter details, or return values, leaving the agent with insufficient information to use the tool effectively in a real-world scenario.

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

Parameters2/5

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

The input schema has 0% description coverage, with one required parameter 'compartment_id' undocumented. The description mentions 'in a compartment', which hints at the parameter's role, but doesn't explain what a compartment ID is, its format, or how to obtain it. This adds minimal value beyond the schema's structure.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'DB Systems in a compartment', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'list_databases' or 'list_db_nodes', which have similar naming patterns but target different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid compartment ID), exclusions, or comparisons to other list tools (e.g., 'get_db_system' for a single system). Without this context, an agent might struggle to choose appropriately.

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

list_dynamic_groupsB
List all dynamic groups in a compartment.

Args:
    compartment_id: OCID of the compartment to list dynamic groups from

Returns:
    List of dynamic groups with their matching rules and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't mention authentication requirements, rate limits, pagination, or error handling. The description adds minimal context beyond the basic action, leaving significant gaps for a tool that likely interacts with cloud resources.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by dedicated 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy, making it easy to parse and front-loaded with the core functionality.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no nested objects) and lack of annotations/output schema, the description is moderately complete. It covers the purpose and parameter semantics adequately but lacks behavioral details like permissions or pagination. For a simple list tool, this is acceptable but not comprehensive.

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

Parameters4/5

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

The description explicitly documents the single parameter 'compartment_id' with its purpose ('OCID of the compartment to list dynamic groups from'), adding meaningful semantics beyond the schema's 0% coverage. This compensates well for the lack of schema descriptions, making the parameter's role clear, though it doesn't cover format details like OCID structure.

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

Purpose4/5

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

The description clearly states the action ('List all dynamic groups') and the resource ('in a compartment'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'get_dynamic_group' (singular) or other list_* tools, which would require mentioning it retrieves multiple groups versus a single one.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_dynamic_group' for retrieving a single group or other list_* tools for different resources, nor does it specify prerequisites or contexts for usage, leaving the agent to infer based on naming alone.

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

list_fault_domainsB
List all fault domains in an availability domain.

Args:
    compartment_id: OCID of the compartment
    availability_domain: Name of the availability domain

Returns:
    List of fault domains with their names and IDs
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
availability_domainYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool lists fault domains but does not cover critical aspects like whether it's a read-only operation, potential rate limits, authentication requirements, or pagination behavior. The description adds limited value beyond the basic action.

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

Conciseness5/5

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

The description is well-structured and concise, with a clear purpose statement followed by Args and Returns sections. Every sentence adds value without redundancy, making it easy to parse and understand quickly.

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

Completeness3/5

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

Given the tool's low complexity (2 required parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and parameters but lacks behavioral details and usage guidelines. For a simple list tool, this is adequate but leaves gaps in operational context.

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

Parameters4/5

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

The description adds meaningful context for both parameters: 'compartment_id: OCID of the compartment' and 'availability_domain: Name of the availability domain.' Since schema description coverage is 0%, this compensates well by explaining what each parameter represents, though it lacks format details like OCID structure or domain naming conventions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all fault domains in an availability domain.' It specifies the verb ('List'), resource ('fault domains'), and scope ('in an availability domain'). However, it does not explicitly differentiate from sibling tools like 'list_availability_domains' or 'list_regions,' which prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It lacks context on prerequisites, such as needing compartment and availability domain information, and does not mention sibling tools like 'list_availability_domains' for related operations. This results in minimal usage direction.

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

list_file_systemsC
List all File Storage file systems in a compartment and availability domain.

Args:
    compartment_id: OCID of the compartment to list file systems from
    availability_domain: Name of the availability domain

Returns:
    List of file systems with their state and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
availability_domainYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose other traits like pagination, rate limits, authentication needs, or error handling. The description is minimal and lacks behavioral details beyond the basic action.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, with the purpose stated first, followed by parameter and return sections. Each sentence adds value, though it could be slightly more detailed without losing conciseness.

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

Completeness3/5

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

Given no annotations and no output schema, the description is incomplete for a tool with two required parameters. It covers the basic purpose and parameters but lacks details on behavior, output format, and usage context, which are needed for effective tool invocation.

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

Parameters3/5

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

Schema description coverage is 0%, but the description adds meaning by explaining that 'compartment_id' is an OCID and 'availability_domain' is a name, which clarifies the parameter types beyond the schema's string types. However, it doesn't provide format details or examples, leaving gaps in understanding.

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

Purpose4/5

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

The description clearly states the action ('List all File Storage file systems') and the scope ('in a compartment and availability domain'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_file_system' (singular vs. plural), though the 'list' prefix implies a collection operation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_file_system' for retrieving a single file system or other list tools for different resources. It mentions the required parameters but doesn't explain usage context or prerequisites.

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

list_groupsB
List all IAM groups in a compartment.

Args:
    compartment_id: OCID of the compartment to list groups from

Returns:
    List of groups with their members count and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose any behavioral traits such as pagination, rate limits, authentication requirements, or error conditions. This leaves significant gaps for an agent to understand how to invoke it correctly.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the core purpose in the first sentence, followed by structured sections for args and returns. There's minimal waste, though the formatting with quotes and line breaks could be slightly cleaner.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is somewhat complete but has gaps. It covers the purpose and parameter semantics adequately, but lacks behavioral transparency and usage guidelines, making it insufficient for full agent understanding without additional context.

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

Parameters4/5

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

The description adds meaningful context for the single parameter 'compartment_id' by explaining it's the 'OCID of the compartment to list groups from', which clarifies its role beyond the schema's basic title. With 0% schema description coverage, this compensates well, though it doesn't cover all potential parameter nuances like format or validation.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all IAM groups in a compartment'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_users' or 'list_dynamic_groups', which list other IAM resources, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_group' (which retrieves a single group) or other list tools, nor does it specify any prerequisites or exclusions for usage.

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

list_imagesB
List all compute images in a compartment.

Args:
    compartment_id: OCID of the compartment to list images from

Returns:
    List of images with OS, version, size, and lifecycle state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') and return format, but lacks details on permissions, rate limits, pagination, or error handling. For a read operation with no annotation coverage, this is insufficient to inform the agent fully about behavioral traits.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by structured sections for Args and Returns. Every sentence earns its place: the first states the action, and the others provide essential parameter and output details without redundancy. It's appropriately sized for a simple tool.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally complete. It covers the basic purpose, parameter, and return format, but lacks behavioral context and usage guidelines. Without annotations or output schema, it should do more to compensate, but it's adequate for a simple list operation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'compartment_id' as 'OCID of the compartment to list images from,' which clarifies the parameter's purpose beyond the schema's title 'Compartment Id.' However, it doesn't cover all potential nuances (e.g., format or validation), but with only one parameter, this is adequate for a baseline near 4.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all compute images in a compartment.' It specifies the verb ('List') and resource ('compute images'), and while it doesn't explicitly differentiate from siblings like 'get_image', the scope ('all' in a compartment) implies a listing operation versus a single retrieval. However, it doesn't directly compare to sibling tools, so it's not a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_image' (for retrieving a single image) or other listing tools, nor does it specify prerequisites or exclusions. The agent must infer usage from context alone, which is minimal.

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

list_instancesC

List all instances in a compartment.

ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'List all instances' but doesn't disclose behavioral traits such as pagination, rate limits, permissions required, or what 'all' entails (e.g., filtering options). This is a significant gap for a read operation with no structured safety hints.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly for an AI agent.

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

Completeness2/5

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

Given no annotations, no output schema, and low parameter coverage, the description is incomplete. It lacks details on behavior, return values, and parameter context, making it inadequate for a tool that likely returns a list of instances with potential complexity.

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

Parameters2/5

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

The input schema has 1 parameter with 0% description coverage, and the description doesn't add any meaning beyond 'compartment'. It doesn't explain what a compartment is, how to obtain its ID, or constraints, failing to compensate for the low schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('instances in a compartment'), making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'get_instance' (singular) or 'list_vnics' which might list related resources, so it's not fully distinguished from alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_instance' (singular retrieval) and other list tools, there's no indication of context, prerequisites, or exclusions, leaving the agent to infer usage based on naming alone.

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

list_keysA
List all encryption keys in a vault's compartment.

Note: You must first get a vault to obtain its management_endpoint.

Args:
    compartment_id: OCID of the compartment
    management_endpoint: Management endpoint from the vault (get from vault details)

Returns:
    List of keys with their algorithm, protection mode, and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
management_endpointYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It describes the operation as a list/read action (implied non-destructive) and mentions the prerequisite of obtaining management_endpoint, but lacks details on permissions, rate limits, pagination, or error conditions that would be important for a cloud resource tool.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement, important prerequisite note, and separate Args/Returns sections. Every sentence adds value without redundancy, making it easy to parse.

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

Completeness4/5

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

For a 2-parameter tool with no annotations and no output schema, the description does well by explaining parameters and return format. However, it could provide more behavioral context about the list operation (e.g., pagination, sorting, filtering) given the complexity of cloud resource management.

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

Parameters5/5

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

The description adds significant value beyond the 0% schema coverage. It explains that 'compartment_id' is an OCID and 'management_endpoint' comes from vault details, clarifying the purpose and source of both parameters that the bare schema titles don't provide.

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

Purpose5/5

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

The description clearly states the verb 'List' and resource 'encryption keys in a vault's compartment', specifying the scope precisely. It distinguishes from siblings like 'get_key' (singular retrieval) and 'list_vaults' (different resource type), making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context with the note about obtaining the management_endpoint from a vault first, which is a prerequisite. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_key' or other list tools, missing sibling differentiation.

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

list_load_balancersA
List all classic load balancers in a compartment.

Args:
    compartment_id: OCID of the compartment to list load balancers from

Returns:
    List of load balancers with their IP addresses, shape, and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states this is a list operation but doesn't disclose behavioral traits like pagination, rate limits, authentication requirements, error conditions, or whether it's read-only (though implied by 'List'). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by separate 'Args' and 'Returns' sections. Every sentence adds value: the first defines scope, the second explains the parameter, and the third outlines the return data. No wasted words, and it's front-loaded with the core functionality.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is moderately complete. It covers the purpose, parameter meaning, and return content, but lacks behavioral details (e.g., pagination, errors) and doesn't reference sibling tools. For a simple list operation, this is adequate but has clear gaps in usage and transparency.

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

Parameters4/5

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

The description includes an 'Args' section that explains the single parameter ('compartment_id: OCID of the compartment to list load balancers from'), adding meaningful context beyond the schema (which has 0% description coverage and only shows title 'Compartment Id'). This compensates well for the low schema coverage, though it doesn't detail format constraints like OCID structure.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('classic load balancers in a compartment'), specifying the scope ('all classic load balancers') which distinguishes it from sibling tools like 'get_load_balancer' (singular) and 'list_network_load_balancers' (different type). The purpose is specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_load_balancer' (for a specific load balancer) or 'list_network_load_balancers' (for a different load balancer type), nor does it specify prerequisites or exclusions. Usage context is implied but not explicit.

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

list_log_groupsB
List all log groups in a compartment.

Args:
    compartment_id: OCID of the compartment to list log groups from

Returns:
    List of log groups with their display names and lifecycle states
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool lists log groups but lacks details on permissions required, pagination behavior, rate limits, or error handling. For a read operation with no annotation coverage, this is insufficient behavioral disclosure.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description covers the basic purpose and parameter semantics adequately. However, it lacks details on behavioral aspects like permissions or pagination, which are important for a list operation, making it minimally complete but with gaps.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: 'compartment_id: OCID of the compartment to list log groups from.' This clarifies the parameter's purpose and format (OCID), compensating for the 0% schema description coverage. Since there is only one parameter, the baseline is high, and the description effectively explains it.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all log groups in a compartment.' It specifies the verb ('List') and resource ('log groups'), and the scope ('in a compartment') is explicit. However, it does not differentiate from sibling tools like 'list_logs' or 'search_logs', which prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions no prerequisites, exclusions, or comparisons to sibling tools such as 'list_logs' or 'search_logs', leaving the agent to infer usage context independently.

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

list_logsB
List all logs in a log group.

Args:
    log_group_id: OCID of the log group

Returns:
    List of logs with their types, retention, and enabled state
ParametersJSON Schema
NameRequiredDescriptionDefault
log_group_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a list operation but doesn't mention whether it's read-only, requires authentication, has rate limits, returns paginated results, or what happens on errors. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is perfectly structured and concise: a clear purpose statement followed by well-organized Args and Returns sections. Every sentence earns its place with no wasted words, making it easy to parse and understand quickly.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameter but lacks behavioral context, usage guidance, and output details beyond a high-level summary. This meets minimum viability but has clear gaps.

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

Parameters4/5

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

The description explicitly documents the single parameter ('log_group_id: OCID of the log group'), adding crucial semantic meaning beyond the schema's 0% coverage. While it doesn't explain the OCID format or provide examples, it compensates well for the schema's lack of descriptions, earning a strong score.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('logs in a log group'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search_logs' or 'list_log_groups', which would require explicit comparison to achieve a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_logs' or 'list_log_groups'. It mentions the required parameter but offers no context about prerequisites, permissions, or typical use cases, leaving the agent to infer usage scenarios.

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

list_metricsB
List available metrics in a compartment.

Args:
    compartment_id: OCID of the compartment
    namespace: Optional namespace to filter metrics (e.g., oci_computeagent, oci_blockstore)

Returns:
    List of available metrics with their namespaces and dimensions
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
namespaceNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose critical details like authentication requirements, rate limits, pagination, or what happens if the compartment_id is invalid. For a tool with no annotations, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the core purpose. The Args and Returns sections are structured clearly, though the return description could be more specific (e.g., what fields are included). No wasted sentences, but minor room for improvement in brevity.

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

Completeness3/5

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

Given no annotations and no output schema, the description covers basic purpose and parameters adequately but lacks details on behavioral traits, error handling, and return format specifics. For a simple list tool, it's minimally viable but incomplete for robust agent usage without additional context.

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

Parameters4/5

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

The description adds meaningful context beyond the schema, which has 0% coverage. It explains that 'compartment_id' is an OCID and 'namespace' is optional for filtering, with examples like 'oci_computeagent'. This compensates well for the lack of schema descriptions, though it doesn't detail format constraints for OCIDs.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('available metrics in a compartment'), making the purpose specific and understandable. It distinguishes from siblings like 'query_metric_data' by focusing on listing available metrics rather than querying metric data, though it doesn't explicitly mention this distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'query_metric_data' or other list tools. The description mentions optional namespace filtering but doesn't explain when this filtering is appropriate or what the tool's scope is relative to siblings.

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

list_network_load_balancersA
List all network load balancers in a compartment.

Args:
    compartment_id: OCID of the compartment to list network load balancers from

Returns:
    List of network load balancers with their IP addresses and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format ('List of network load balancers with their IP addresses and state'), which is helpful, but lacks critical details like pagination behavior, rate limits, authentication requirements, error conditions, or whether the operation is idempotent. For a list operation with zero annotation coverage, this leaves significant gaps.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by dedicated 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy or fluff.

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

Completeness3/5

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

For a simple list operation with one parameter and no output schema, the description covers the basic purpose, parameter meaning, and return format. However, without annotations, it misses behavioral aspects like pagination or error handling. It's adequate but has clear gaps in operational context.

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

Parameters4/5

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

The description explicitly documents the single parameter ('compartment_id: OCID of the compartment to list network load balancers from'), adding crucial semantic context beyond the schema's bare title ('Compartment Id'). With 0% schema description coverage and only one parameter, this effectively compensates for the schema's lack of documentation.

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

Purpose5/5

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

The description clearly states the specific action ('List all network load balancers') and resource ('in a compartment'), distinguishing it from sibling tools like 'get_network_load_balancer' (singular) and 'list_load_balancers' (different resource type). It precisely defines the scope and target resource.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get_network_load_balancer' (for a specific instance) or 'list_load_balancers' (for a different type of load balancer). The description only states what it does, not when it's appropriate relative to other tools.

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

list_network_security_groupsB
List all Network Security Groups (NSGs) in a compartment.

Args:
    compartment_id: OCID of the compartment to list NSGs from
    vcn_id: Optional OCID of the VCN to filter NSGs

Returns:
    List of NSGs with their security rules
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
vcn_idNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't mention critical details like pagination, rate limits, authentication requirements, error conditions, or what 'List of NSGs with their security rules' entails (e.g., format, depth). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by 'Args:' and 'Returns:' sections that efficiently document inputs and outputs. Each sentence adds value without redundancy, though it could be slightly more concise by integrating the args/returns into the main flow.

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

Completeness3/5

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

Given no annotations, 0% schema description coverage, and no output schema, the description is moderately complete. It covers the basic purpose and parameters adequately, but lacks details on behavioral aspects (e.g., pagination, errors) and output specifics. For a list tool with simple parameters, it meets minimum viability but misses opportunities to fully compensate for the missing structured data.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: 'compartment_id: OCID of the compartment to list NSGs from' and 'vcn_id: Optional OCID of the VCN to filter NSGs.' This clarifies the purpose and usage of each parameter beyond their schema titles ('Compartment Id', 'Vcn Id'), though it doesn't specify format details like OCID structure or filtering logic.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all Network Security Groups (NSGs) in a compartment.' It specifies the verb ('List'), resource ('Network Security Groups'), and scope ('in a compartment'), which is clear and specific. However, it doesn't explicitly differentiate from sibling tools like 'get_network_security_group' (singular vs. plural), though the naming convention implies 'list' vs. 'get' distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_network_security_group' for retrieving a specific NSG or other list tools for different resources. There's no context on prerequisites, filtering options beyond the optional vcn_id, or comparison to similar operations.

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

list_oci_profilesA
List all available OCI profiles from ~/.oci/config file.

Returns a list of profiles with their configuration details.
Use this when you need to select a profile before making OCI API calls.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it reads from a specific file (~/.oci/config), returns a list with configuration details, and implies it's a read-only operation (listing). However, it doesn't mention potential errors (e.g., if the file is missing) or format of returned details, leaving some gaps.

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

Conciseness5/5

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

The description is perfectly front-loaded and concise: three sentences with zero waste. The first sentence states the purpose, the second describes the return value, and the third provides usage guidelines—each earning its place efficiently.

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

Completeness4/5

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

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is mostly complete. It covers purpose, return value, and usage context. However, it lacks details on error handling or exact return format, which could be helpful for an agent, though not critical for this simple tool.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description adds no parameter information (as there are none), which is appropriate and doesn't detract from the score.

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

Purpose5/5

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

The description clearly states the specific verb ('List') and resource ('OCI profiles from ~/.oci/config file'), and distinguishes this tool from siblings like 'get_current_oci_profile' and 'set_oci_profile' by focusing on listing all available profiles rather than getting/setting a specific one. It explicitly mentions the source file and what is returned.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Use this when you need to select a profile before making OCI API calls.' This directly addresses the tool's purpose in the workflow and distinguishes it from other tools that perform OCI operations after profile selection.

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

list_oke_clustersA
List all OKE (Container Engine for Kubernetes) clusters in a compartment.

Args:
    compartment_id: OCID of the compartment

Returns:
    List of OKE clusters with their details including Kubernetes version, endpoints, and lifecycle state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a list operation but doesn't disclose behavioral traits like pagination, rate limits, authentication requirements, or whether it's read-only. The description adds minimal context beyond the basic operation.

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

Conciseness5/5

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

The description is appropriately sized with three sentences: purpose statement, parameter explanation, and return value description. It's front-loaded with the core purpose and has zero wasted content.

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

Completeness3/5

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

For a simple list tool with 1 parameter and no output schema, the description covers basics but lacks completeness. It doesn't explain return format details, error conditions, or behavioral aspects like pagination, which would be helpful given no annotations.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates by explaining the single parameter 'compartment_id' as 'OCID of the compartment', adding semantic meaning beyond the schema's generic title 'Compartment Id'. This is sufficient for the single parameter.

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

Purpose5/5

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

The description clearly states the specific action ('List all OKE clusters') and resource ('OKE clusters in a compartment'), with 'OKE' defined as Container Engine for Kubernetes. It distinguishes from sibling tools like 'get_oke_cluster' (singular retrieval) by emphasizing listing all clusters.

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

Usage Guidelines3/5

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

The description implies usage for listing OKE clusters in a compartment, but provides no explicit guidance on when to use this tool versus alternatives like 'get_oke_cluster' or other list tools. No exclusions or prerequisites are mentioned.

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

list_oke_node_poolsA
List all node pools in a compartment, optionally filtered by cluster.

Args:
    compartment_id: OCID of the compartment
    cluster_id: Optional OCID of the cluster to filter by

Returns:
    List of node pools with their details including:
    - Node shape and image information
    - Kubernetes version
    - Placement configuration (ADs, subnets)
    - Node count per subnet
    - Lifecycle state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
cluster_idNo

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format in detail, which is helpful, but lacks critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or error conditions. For a list operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement upfront, followed by well-organized sections for Args and Returns. Every sentence adds value: the first defines the tool's scope, the Args section clarifies parameters, and the Returns section details output. There's no wasted verbiage or redundancy.

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

Completeness3/5

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

Given the tool's moderate complexity (list operation with filtering), no annotations, no output schema, and low schema description coverage (0%), the description does a decent job but has notable gaps. It explains parameters and return format well, but lacks behavioral context (e.g., safety, pagination, errors). For a tool with no structured metadata, it's adequate but not fully comprehensive.

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

Parameters4/5

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

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains that 'compartment_id' is an 'OCID of the compartment' and 'cluster_id' is an 'Optional OCID of the cluster to filter by', providing crucial semantic context that the schema alone lacks. This effectively compensates for the schema's deficiency, though it doesn't cover all possible parameter nuances.

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

Purpose5/5

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

The description clearly states the specific action ('List all node pools') and resource ('in a compartment'), with explicit scope ('optionally filtered by cluster'). It distinguishes from sibling tools like 'get_oke_node_pool' (singular retrieval) and 'list_oke_clusters' (different resource type), making the purpose unambiguous and well-differentiated.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('List all node pools in a compartment, optionally filtered by cluster'), which implicitly distinguishes it from tools like 'get_oke_node_pool' (for single node pool details). However, it doesn't explicitly state when NOT to use it or name specific alternatives beyond the filtering hint, missing full explicit guidance.

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

list_oke_work_requestsA
List work requests (async operations) for OKE resources in a compartment.

Args:
    compartment_id: OCID of the compartment
    resource_id: Optional OCID of a specific resource (cluster or node pool) to filter by

Returns:
    List of work requests with their details including:
    - Operation type (create, update, delete, etc.)
    - Status and completion percentage
    - Associated resources
    - Timestamps (accepted, started, finished)
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
resource_idNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (list of work requests with details like operation type, status, resources, timestamps), which is helpful. However, it doesn't mention critical behavioral aspects such as pagination, rate limits, authentication requirements, or whether this is a read-only operation (though 'List' implies it). The description adds some value but lacks comprehensive behavioral context.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections are clearly labeled and provide essential information without redundancy. Every sentence earns its place, making it efficient and easy to parse, with no wasted words.

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

Completeness3/5

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

Given the complexity (a list operation with 2 parameters), no annotations, and no output schema, the description is moderately complete. It covers the purpose, parameters, and return format adequately. However, it lacks details on behavioral aspects like pagination or error handling, and without annotations or output schema, it doesn't fully compensate for these gaps, making it sufficient but not comprehensive.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It provides clear semantics for both parameters: 'compartment_id' as 'OCID of the compartment' and 'resource_id' as 'Optional OCID of a specific resource (cluster or node pool) to filter by'. This adds meaningful context beyond the bare schema, explaining what the parameters represent and their optional nature. However, it doesn't detail format constraints or examples, keeping it from a perfect score.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'work requests (async operations) for OKE resources in a compartment'. It specifies the domain (OKE resources) and scope (compartment-based), which is clear and specific. However, it doesn't explicitly differentiate from sibling tools like 'get_oke_work_request' (singular) or other list tools, so it doesn't reach the highest score.

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

Usage Guidelines3/5

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

The description implies usage context by mentioning 'in a compartment' and optional filtering by resource_id, but it doesn't provide explicit guidance on when to use this tool versus alternatives. For example, it doesn't compare to 'get_oke_work_request' (singular) or other list tools, nor does it mention prerequisites or exclusions. This leaves usage somewhat inferred rather than clearly stated.

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

list_policiesB
List all IAM policies in a compartment.

Args:
    compartment_id: OCID of the compartment to list policies from

Returns:
    List of policies with their statements and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('List of policies with their statements and state'), which adds some value, but fails to cover critical aspects like pagination, rate limits, authentication requirements, or error handling for a list operation in a cloud environment.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value without redundancy, making it easy to parse and understand quickly.

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

Completeness3/5

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

For a list tool with no annotations and no output schema, the description is adequate but has gaps. It covers the basic operation and parameter semantics, but lacks details on behavioral traits like pagination or error handling, which are important for an IAM policy listing in a cloud context.

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

Parameters4/5

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

The description adds meaningful context for the single parameter ('compartment_id: OCID of the compartment to list policies from'), explaining its purpose beyond the schema's basic title. Since schema description coverage is 0%, this compensates well, though it doesn't detail format constraints like OCID structure or validation rules.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all IAM policies in a compartment'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_policy' or other list tools, which slightly limits its clarity in a crowded toolset.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_policy' or other list tools. It lacks context on prerequisites, such as required permissions or compartment structure, and doesn't mention any exclusions or specific use cases.

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

list_regionsB
List all available OCI regions.

Returns:
    List of regions with their keys and names
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format ('List of regions with their keys and names'), which adds some value beyond the basic purpose. However, it lacks critical details like whether this is a read-only operation, if it requires authentication, potential rate limits, or error conditions—important for a tool in a cloud infrastructure context.

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

Conciseness5/5

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

The description is extremely concise and well-structured: two sentences that directly state the purpose and return format, with zero wasted words. It's front-loaded with the core function, making it easy for an agent to parse quickly.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate but has gaps. It explains what the tool does and the return format, which is sufficient for basic use. However, in a cloud infrastructure context with no annotations, more behavioral context (e.g., safety, auth needs) would improve completeness for agent decision-making.

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

Parameters4/5

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

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain any parameters, so it naturally meets expectations. A baseline of 4 is appropriate as there are no parameters to document, and the description focuses correctly on output semantics.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all available OCI regions.' It uses a specific verb ('List') and resource ('OCI regions'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_availability_domains' or 'list_fault_domains' that also list OCI resources, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools that list various OCI resources (e.g., 'list_availability_domains', 'list_compartments'), there's no indication of context, prerequisites, or exclusions. The agent must infer usage from the tool name alone.

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

list_security_listsB
List all security lists in a compartment, optionally filtered by VCN.

Args:
    compartment_id: OCID of the compartment to list security lists from
    vcn_id: Optional OCID of the VCN to filter security lists

Returns:
    List of security lists with their ingress and egress rules
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
vcn_idNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the tool lists security lists with their rules, but does not disclose behavioral traits such as pagination, rate limits, permissions required, or error handling. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and parameters well but lacks behavioral details and usage guidelines. Without an output schema, it helpfully mentions the return includes 'ingress and egress rules', but more context on behavior is needed.

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

Parameters4/5

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

The description adds meaningful context for both parameters: 'compartment_id' is described as 'OCID of the compartment to list security lists from', and 'vcn_id' as 'Optional OCID of the VCN to filter security lists'. This clarifies their roles beyond the schema's basic titles, compensating for the 0% schema description coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all security lists in a compartment, optionally filtered by VCN.' It specifies the verb ('List'), resource ('security lists'), and scope ('compartment'), but does not explicitly differentiate it from sibling tools like 'get_security_list' or 'list_network_security_groups'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description mentions optional VCN filtering but does not specify when to use this tool over 'get_security_list' (singular) or other list tools, nor does it mention prerequisites or exclusions.

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

list_shapesB
List all compute shapes available in a compartment.

Args:
    compartment_id: OCID of the compartment

Returns:
    List of shapes with CPU, memory, network, and GPU specifications
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format (list with specifications) but lacks critical details like whether this is a read-only operation, if it requires specific permissions, rate limits, pagination behavior, or error conditions. For a tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by separate 'Args' and 'Returns' sections. Every sentence adds value without redundancy, making it easy to parse and understand quickly.

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

Completeness3/5

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

For a simple list tool with one parameter and no output schema, the description covers the basics (purpose, parameter, return format) adequately. However, without annotations or output schema, it misses behavioral context like safety, permissions, or detailed output structure, leaving some gaps for the agent.

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

Parameters4/5

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

The description explicitly documents the single parameter ('compartment_id') and its purpose ('OCID of the compartment'), adding meaningful context beyond the schema's minimal coverage (0%). Since there's only one parameter and it's fully explained in the description, this compensates well for the schema gap.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all compute shapes') and resource ('available in a compartment'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_instances' or 'list_images' beyond the specific resource type, which is why it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context for selecting shapes, or how it relates to other tools like 'get_instance' or 'list_instances' that might involve shape selection, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subnetsA
List all subnets in a compartment, optionally filtered by VCN.

Args:
    compartment_id: OCID of the compartment to list subnets from
    vcn_id: Optional OCID of the VCN to filter subnets

Returns:
    List of subnets with CIDR blocks, security lists, and routing information
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
vcn_idNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the action as a list operation (implying read-only, non-destructive behavior) and specifies the return content (CIDR blocks, security lists, routing information), which adds useful context. However, it doesn't cover potential behaviors like pagination, rate limits, authentication needs, or error conditions, leaving gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, with a clear purpose statement followed by dedicated sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy, and it's front-loaded with the core functionality. The formatting enhances readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is reasonably complete. It covers the purpose, parameters, and return content adequately. However, it lacks details on behavioral aspects like pagination or error handling, and without an output schema, the return value description is somewhat vague (e.g., no mention of data structure or fields beyond a high-level list).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant semantic value beyond the input schema, which has 0% description coverage. It explains that 'compartment_id' is the OCID of the compartment to list subnets from and 'vcn_id' is an optional OCID for filtering by VCN, clarifying the purpose and format of both parameters. This compensates well for the schema's lack of descriptions, though it doesn't detail OCID format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'List all subnets in a compartment, optionally filtered by VCN.' This specifies the verb ('list'), resource ('subnets'), and scope ('compartment'), distinguishing it from sibling tools like 'get_subnet' (singular retrieval) and 'list_vcns' (different resource). However, it doesn't explicitly differentiate from other list tools beyond the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the optional 'vcn_id' parameter for filtering, suggesting this tool is for listing subnets within a compartment, with VCN filtering as an option. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'get_subnet' for specific subnet retrieval or 'list_vcns' for VCN listing, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_usersA
List all IAM users in a compartment.

Args:
    compartment_id: OCID of the compartment to list users from

Returns:
    List of users with their state, capabilities, and MFA status
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format (list of users with state, capabilities, MFA status), which is helpful, but doesn't address critical aspects like pagination behavior, rate limits, authentication requirements, or error conditions. For a list operation with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and front-loaded: the core purpose is stated first, followed by clearly labeled sections for Args and Returns. Every sentence earns its place with no wasted words, making it efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (list operation with one required parameter) and no output schema, the description covers the basic purpose and parameter semantics well but lacks behavioral context like pagination or error handling. It's adequate for a simple list tool but could be more complete regarding operational constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by clearly explaining the single parameter's purpose ('OCID of the compartment to list users from'). This adds essential meaning beyond the bare schema, making the parameter's role and format clear to the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all IAM users') and resource ('in a compartment'), distinguishing it from sibling tools like 'get_user' (which retrieves a single user) and other list tools for different resources. The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying the compartment scope, but doesn't explicitly state when to use this tool versus alternatives like 'get_user' or other list tools. No exclusions or prerequisites are mentioned, leaving usage context somewhat implied rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vaultsA
List all KMS vaults in a compartment.

Args:
    compartment_id: OCID of the compartment to list vaults from

Returns:
    List of vaults with their type, endpoints, and state
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') and return format ('List of vaults with their type, endpoints, and state'), but lacks critical details such as pagination behavior, rate limits, authentication requirements, error conditions, or whether the operation is idempotent. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by structured Args and Returns sections. Every sentence earns its place: the first states the action, the second clarifies the parameter, and the third outlines the return value. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, no output schema, no annotations), the description covers the basics: purpose, parameter meaning, and return content. However, it lacks behavioral details (e.g., pagination, errors) that would be helpful for an agent, especially without annotations. It's minimally adequate but not fully comprehensive for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter ('compartment_id: OCID of the compartment to list vaults from'), explaining its purpose beyond the schema's bare title ('Compartment Id'). With 0% schema description coverage and only one parameter, this compensation is effective, though it doesn't detail format constraints (e.g., OCID structure).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all KMS vaults') and resource ('in a compartment'), distinguishing it from sibling tools like 'get_vault' (which retrieves a single vault) and other list_* tools that target different resources. The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for listing vaults, it doesn't mention prerequisites (e.g., required permissions), when not to use it, or how it differs from other listing tools in the sibling set beyond the resource type. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vcnsA
List all Virtual Cloud Networks (VCNs) in a compartment.

Args:
    compartment_id: OCID of the compartment to list VCNs from

Returns:
    List of VCNs with their CIDR blocks, DNS labels, and default resources
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a list operation (implied read-only) and mentions what information is returned, but doesn't cover important aspects like pagination behavior, rate limits, authentication requirements, error conditions, or whether the list is filtered/sorted. The return format description is helpful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value with no wasted words. The information is front-loaded with the core functionality stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with 1 parameter and no output schema, the description covers the basic purpose and parameter meaning adequately. However, without annotations and with no output schema, it should ideally provide more behavioral context (like pagination, filtering options, or error handling) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and only 1 parameter, the description provides essential semantic context: it explains that compartment_id is 'OCID of the compartment to list VCNs from', which clarifies the parameter's purpose beyond just its name. This adequately compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all Virtual Cloud Networks'), identifies the resource (VCNs), and specifies the scope ('in a compartment'). It distinguishes from siblings like 'get_vcn' (singular retrieval) and other list tools by focusing on VCNs specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'in a compartment' and the required compartment_id parameter, but doesn't explicitly state when to use this tool versus alternatives like 'get_vcn' or other list tools. No exclusions or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vnicsA
List all Virtual Network Interface Cards (VNICs) in a compartment.

Args:
    compartment_id: OCID of the compartment to list VNICs from
    instance_id: Optional OCID of the instance to filter VNICs

Returns:
    List of VNICs with their IP addresses, subnet information, and security groups
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
instance_idNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool lists VNICs with filtering by instance, and returns specific details (IP addresses, subnet info, security groups), which adds useful behavioral context. However, it lacks information on permissions, rate limits, pagination, or error handling, which are important for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by concise sections for arguments and returns. Each sentence adds value without redundancy, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (list operation with filtering), no annotations, no output schema, and 2 parameters, the description is fairly complete. It covers the purpose, parameters, and return format. However, it could improve by addressing behavioral aspects like pagination or error scenarios, which are common in list tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains that 'compartment_id' is for listing VNICs from a compartment and 'instance_id' is an optional filter for VNICs by instance. This clarifies the purpose and usage of both parameters, fully compensating for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List all Virtual Network Interface Cards (VNICs) in a compartment.' It specifies the verb ('List') and resource ('VNICs'), and includes scope ('in a compartment'). However, it does not explicitly differentiate from sibling tools like 'get_vnic' or other list tools, which slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'get_vnic' (for retrieving a single VNIC) or other list tools, nor does it specify prerequisites or contexts for usage. This leaves the agent without explicit usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_volumesB
List all Block Storage volumes in a compartment.

Args:
    compartment_id: OCID of the compartment to list volumes from

Returns:
    List of volumes with their size, state, and attachment information
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the return format (list with size, state, attachment info), which adds some behavioral context, but lacks details on permissions, rate limits, pagination, or error handling for a list operation in a cloud service.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by structured Args and Returns sections. Every sentence earns its place with no wasted words, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no annotations and no output schema, the description is adequate but has gaps. It covers the purpose and parameter semantics well, but lacks usage guidelines and full behavioral transparency (e.g., auth needs, limits), making it minimally viable but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and only 1 parameter, the description compensates well by explaining 'compartment_id' as 'OCID of the compartment to list volumes from', adding meaningful context beyond the schema's basic title. This clarifies the parameter's role effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('Block Storage volumes in a compartment'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_volume' or 'list_boot_volumes', which would require mentioning scope or filtering differences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_volume' (for a single volume) or 'list_boot_volumes' (for boot volumes). The description only states what it does without context for selection among similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_metric_dataB
Query metric data for a time range using MQL.

Args:
    compartment_id: OCID of the compartment
    query: Metric query in MQL format (e.g., "CpuUtilization[1m].mean()")
    start_time: Start time in ISO format (YYYY-MM-DDTHH:MM:SSZ)
    end_time: End time in ISO format (YYYY-MM-DDTHH:MM:SSZ)
    resolution: Data resolution (1m, 5m, 1h)

Returns:
    List of metric data points with timestamps and values
ParametersJSON Schema
NameRequiredDescriptionDefault
compartment_idYes
queryYes
start_timeYes
end_timeYes
resolutionNo1m

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool as a query operation, implying it's likely read-only, but doesn't explicitly state this or mention other behavioral traits like authentication needs, rate limits, error handling, or data format specifics. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized, with a clear purpose statement followed by parameter explanations and return information. Every sentence adds value, and there's no redundant or verbose content. However, it could be slightly more front-loaded by emphasizing the core purpose more prominently, but overall it's efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is moderately complete. It covers the purpose and parameters well, but lacks details on behavioral aspects like read-only status, error cases, or output structure beyond a high-level 'List of metric data points'. For a query tool with no structured output schema, more information on return values would enhance completeness, but it meets a baseline level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose and provides examples (e.g., 'query: Metric query in MQL format (e.g., "CpuUtilization[1m].mean()")', 'start_time: Start time in ISO format (YYYY-MM-DDTHH:MM:SSZ)'). This compensates fully for the schema's lack of descriptions, making the parameters clear and actionable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Query metric data for a time range using MQL.' It specifies the verb ('query'), resource ('metric data'), and method ('using MQL'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'list_metrics' or 'search_logs', which might also retrieve metric-related data, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions using MQL for querying metric data over a time range, but doesn't specify prerequisites, exclusions, or compare it to sibling tools like 'list_metrics' (which might list available metrics) or 'search_logs' (which might handle log-based queries). This lack of contextual usage advice leaves the agent with minimal direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reboot_db_nodeC

Reboot a DB Node.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'reboot' implies a potentially disruptive operation, the description doesn't clarify whether this causes downtime, requires specific permissions, has safety checks, or provides any status feedback. For a destructive operation with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just four words, front-loading the essential information with zero wasted words. Every word earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations, no output schema, and a parameter with 0% schema coverage, the description is inadequate. It doesn't explain what 'reboot' entails operationally, what the consequences are, how to identify the correct node ID, or what to expect after invocation. The context demands more comprehensive guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the single parameter 'db_node_id' is undocumented in the schema. The description provides no additional information about this parameter - no format requirements, no examples, no context about where to find valid node IDs. The description fails to compensate for the schema's lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('reboot') and the target resource ('a DB Node'), which provides a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'reset_db_node' or 'softreset_db_node' that appear to perform similar operations on the same resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'reset_db_node', 'softreset_db_node', 'start_db_node', or 'stop_db_node'. There's no mention of prerequisites, consequences, or appropriate contexts for choosing this specific reboot operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reset_db_nodeC

Reset (force reboot) a DB Node.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'reset (force reboot)' implies a potentially disruptive operation, the description doesn't specify critical details like required permissions, impact on database availability, whether data loss might occur, or typical response behavior. The parenthetical '(force reboot)' adds some context but remains vague about actual consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just 5 words, with zero wasted language. It's front-loaded with the core action and resource, making it immediately clear what the tool does at a high level. Every word earns its place in this minimal description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a potentially destructive operation (force reboot) with no annotations and no output schema, the description is inadequate. It doesn't address critical context like safety considerations, error conditions, expected outcomes, or how this differs from similar sibling tools. The combination of a disruptive action with minimal documentation creates significant gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented parameter. The description mentions 'a DB Node' which relates to the 'db_node_id' parameter, but provides no additional semantic context about what constitutes a valid DB Node ID, where to find these IDs, or how the parameter should be formatted. This leaves significant gaps in understanding the single required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('reset (force reboot)') and the target resource ('a DB Node'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'reboot_db_node' or 'softreset_db_node', which appear to perform similar operations with potentially different behaviors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'reboot_db_node' and 'softreset_db_node' available, there's no indication of what distinguishes a 'reset (force reboot)' from a regular 'reboot' or 'softreset', nor any prerequisites or context for when this specific operation is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_logsB
Search logs using the Logging Search API.

Args:
    time_start: Start time in ISO format (YYYY-MM-DDTHH:MM:SSZ)
    time_end: End time in ISO format (YYYY-MM-DDTHH:MM:SSZ)
    search_query: Search query string

Returns:
    List of log entries matching the search criteria
ParametersJSON Schema
NameRequiredDescriptionDefault
time_startYes
time_endYes
search_queryYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the API name ('Logging Search API') and return format ('List of log entries'), it doesn't cover important aspects like authentication requirements, rate limits, pagination behavior, error conditions, or whether this is a read-only operation. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately concise. It begins with a clear purpose statement, then provides parameter documentation in a clean format, and ends with return value information. Every sentence earns its place, with no redundant or unnecessary content. The formatting with clear sections for 'Args' and 'Returns' enhances readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no annotations and no output schema, the description provides adequate basic information but has notable gaps. It covers the purpose and parameters well, but lacks behavioral context (permissions, limits, errors) and detailed output specification. For a search tool with 3 parameters and no structured metadata, this represents a minimum viable description that could be more complete, particularly regarding the search query syntax and result format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides clear semantic information for all three parameters beyond what the schema offers. The schema has 0% description coverage (only titles), but the description specifies: 'time_start: Start time in ISO format (YYYY-MM-DDTHH:MM:SSZ)', 'time_end: End time in ISO format (YYYY-MM-DDTHH:MM:SSZ)', and 'search_query: Search query string'. This adds crucial format details and meaning that the schema lacks, though it could benefit from examples of valid search queries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search logs using the Logging Search API.' It specifies the verb ('search') and resource ('logs'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_logs' or 'list_log_groups', which appear to be related but distinct operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'list_logs' and 'list_log_groups' available, there's no indication of how this search functionality differs from those listing operations. The description lacks any context about prerequisites, constraints, or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_oci_profileB
Set the active OCI profile to use for API calls.

Args:
    profile_name: Name of the profile to activate (e.g., "DEFAULT", "production")

This will initialize or reinitialize OCI clients with the selected profile.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'will initialize or reinitialize OCI clients with the selected profile,' which implies a state-changing operation but doesn't clarify critical aspects like whether this affects all subsequent calls, if it requires specific permissions, or if there are side effects (e.g., invalidating existing clients). For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized: it starts with a clear purpose statement, then details the parameter with an example. Both sentences earn their place by adding value. It could be slightly more concise by integrating the example into the main text, but overall it's efficient without being sparse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (a state-setting operation with one parameter), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks details on behavioral implications, error conditions, or integration with sibling tools. For a tool that likely influences many other operations, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter: it explains that 'profile_name' is the 'Name of the profile to activate' and provides examples ('e.g., "DEFAULT", "production"'). Since schema description coverage is 0% and there's only one parameter, this effectively compensates for the schema's lack of documentation, making the parameter's purpose clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set the active OCI profile to use for API calls.' It specifies the verb ('Set') and resource ('active OCI profile'), making the action explicit. However, it doesn't differentiate from its sibling 'get_current_oci_profile' beyond the obvious read/write distinction, which keeps it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing profile), when it's appropriate (e.g., before making API calls), or how it relates to sibling tools like 'list_oci_profiles' or 'get_current_oci_profile'. This lack of context leaves the agent guessing about optimal usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

softreset_db_nodeC

Soft reset (graceful reboot) a DB Node.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'soft reset (graceful reboot)' implies a non-destructive operation, it doesn't specify what 'graceful' means in practice, whether this requires specific permissions, potential downtime implications, or what happens to active database connections. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that communicates the core functionality without any wasted words. It's front-loaded with the essential information and has no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool that performs a 'soft reset' on a database node with no annotations and no output schema, the description is inadequate. It doesn't explain what distinguishes this from other reset/reboot operations, what 'graceful' entails, potential side effects, or what the operation returns. Given the complexity of database node operations and the presence of similar sibling tools, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions no parameters, and with 0% schema description coverage for the single parameter 'db_node_id', the schema provides only basic typing information. The description doesn't add any parameter-specific context, but since there's only one parameter, the baseline score of 3 is appropriate as the agent can reasonably infer the parameter's purpose from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('soft reset/graceful reboot') and the target resource ('a DB Node'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'reboot_db_node' or 'reset_db_node', which appear to be related operations on the same resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'reboot_db_node' or 'reset_db_node' that appear in the sibling list. There's no mention of prerequisites, consequences, or appropriate contexts for choosing a 'soft reset' over other reset/reboot operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_db_nodeC

Start a DB Node.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden but fails to disclose behavioral traits. It doesn't mention if this is a destructive operation, requires specific permissions, has side effects, rate limits, or what happens on success/failure. 'Start' implies a state change but lacks operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, front-loaded with the core action. There's no wasted verbiage, making it efficient to parse, though this brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, no output schema, and a mutation tool (starting a resource), the description is incomplete. It lacks essential context like behavioral effects, parameter meaning, and expected outcomes, making it inadequate for safe and effective use by an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'db_node_id' is, its format, or where to obtain it, leaving the single required parameter undocumented beyond the schema's basic type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Start a DB Node' clearly states the action (start) and target resource (DB Node), which is better than a tautology. However, it lacks specificity about what 'start' means operationally (e.g., powering on, activating) and doesn't distinguish from siblings like 'start_db_system' or 'start_instance', leaving ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Siblings include related tools like 'start_db_system', 'start_instance', 'reboot_db_node', 'stop_db_node', but the description offers no context for selection, prerequisites, or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_db_systemB
Start all nodes of a DB System.
Note: compartment_id required to enumerate nodes correctly.
ParametersJSON Schema
NameRequiredDescriptionDefault
db_system_idYes
compartment_idYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states the action ('Start all nodes') but lacks critical behavioral details: whether this requires specific permissions, if it's reversible, expected duration, or what happens if nodes are already running. This is inadequate for a potentially destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The first states the core purpose, the second provides essential parameter context. Perfectly front-loaded and appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that starts a DB system (a significant operation) with no annotations and no output schema, the description is insufficient. It lacks behavioral context, error conditions, prerequisites, and expected outcomes, leaving critical gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaningful context for compartment_id ('required to enumerate nodes correctly'), explaining its purpose beyond the schema. However, it doesn't clarify db_system_id's role or format, leaving some parameter semantics incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Start all nodes') and resource ('DB System'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'start_db_node' or 'start_instance', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'start_db_node' or 'reboot_db_node'. The note about compartment_id is a parameter requirement, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_instanceD

Start an instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Start an instance' implies a mutation operation but reveals nothing about side effects (e.g., billing implications, startup time), permissions required, error conditions (e.g., invalid instance_id), or response format. It lacks critical details like whether the operation is idempotent, asynchronous, or has rate limits, making it inadequate for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise ('Start an instance.'), which is efficient but borders on under-specification. It consists of a single sentence that is front-loaded with the core action, but lacks necessary elaboration. While brevity is not inherently problematic, the content is too sparse to be helpful, failing to provide the context needed for effective tool use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of starting an instance (a mutation with potential side effects), no annotations, no output schema, and minimal parameter documentation, the description is severely incomplete. It omits essential information such as behavioral traits, usage prerequisites, error handling, and return values. For a tool that likely interacts with cloud infrastructure, this level of detail is insufficient for reliable agent operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter with 0% description coverage, and the tool description adds no information about the 'instance_id' parameter. It does not explain what an instance_id is, how to obtain it (e.g., from 'get_instance' or 'list_instances'), its format, or validation rules. With zero schema coverage and no compensatory details in the description, parameters are effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Start an instance' is a tautology that merely restates the tool name without adding meaningful context. It specifies the verb ('start') and resource ('instance'), but lacks specificity about what kind of instance (e.g., compute instance, database instance) or what 'starting' entails. Compared to siblings like 'start_db_node' or 'start_db_system', it fails to distinguish itself clearly, leaving ambiguity about its exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., instance must be stopped), exclusions (e.g., cannot start if already running), or related tools like 'stop_instance', 'reboot_db_node', or 'get_instance' for checking status. Without such context, an agent cannot make informed decisions about its applicability in different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_db_nodeC

Stop a DB Node.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_node_idYes
softNo

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. 'Stop a DB Node' implies a destructive operation but doesn't specify whether this is reversible, what permissions are required, whether data is preserved, or what the consequences are. The description lacks critical behavioral context for a potentially disruptive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and immediately communicates the essential purpose without any unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is severely inadequate. It doesn't address critical aspects like safety considerations, return values, error conditions, or relationship to sibling tools. The minimal description fails to provide the necessary context for safe and effective tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but provides no parameter information. The two parameters (db_node_id and soft) are completely undocumented in both schema and description. The description doesn't explain what 'soft' means (graceful shutdown vs forced stop) or how to identify a db_node_id, leaving significant gaps in parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Stop a DB Node' clearly states the action (stop) and target resource (DB Node), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'stop_db_system' or 'stop_instance', which perform similar stopping operations on different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'stop_db_system', 'stop_instance', 'reboot_db_node', or 'reset_db_node'. There's no mention of prerequisites, dependencies, or appropriate contexts for stopping a database node versus other stopping operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_db_systemC
Stop all nodes of a DB System.
Note: compartment_id required to enumerate nodes correctly.
ParametersJSON Schema
NameRequiredDescriptionDefault
db_system_idYes
compartment_idYes
softNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Stop all nodes') which implies a destructive/mutating operation, but doesn't clarify whether this is reversible, what permissions are needed, whether it affects database availability, or what happens to connected applications. The note about compartment_id is procedural but doesn't address behavioral traits like side effects or system impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately brief with two sentences that each serve a purpose: the first states the core functionality, the second provides important implementation detail. There's no unnecessary verbiage or repetition. While it could be slightly more informative, every sentence earns its place by adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'stopping' entails, whether data is preserved, how to verify completion, error conditions, or system dependencies. The context signals indicate this is a complex operation that requires more complete documentation than provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'compartment_id required to enumerate nodes correctly' which adds some semantic context for one parameter, but doesn't explain 'db_system_id' (the primary identifier) or 'soft' (with its default true value). With 3 parameters and minimal description coverage, this leaves significant gaps in understanding parameter purposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Stop all nodes') and resource ('of a DB System'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'stop_db_node' or 'stop_instance', but the specificity of 'DB System' provides some implicit distinction. The description avoids tautology by not merely restating the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'stop_db_node' (for individual nodes) or 'stop_instance' (for compute instances). The note about 'compartment_id required to enumerate nodes correctly' is a parameter requirement, not usage guidance. There's no mention of prerequisites, consequences, or appropriate contexts for invoking this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_instanceC

Stop an instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes
forceNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Stop an instance' implies a mutation that halts an instance, but it doesn't describe side effects (e.g., data persistence, billing implications), permissions required, error conditions, or what happens if the instance is already stopped. The 'force' parameter in the schema hints at optional forceful stopping, but the description doesn't explain this behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence 'Stop an instance.', which is front-loaded and wastes no words. It directly states the action without unnecessary elaboration, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a mutation tool with no annotations, 2 parameters at 0% schema coverage, and no output schema), the description is incomplete. It lacks details on behavior, parameters, error handling, and output, which are critical for an agent to invoke this tool correctly in a cloud infrastructure context with many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning parameters are undocumented in the schema. The description adds no information about parameters beyond implying an 'instance' target. It doesn't explain what 'instance_id' refers to (e.g., format, scope) or the meaning of the 'force' parameter (e.g., whether it bypasses graceful shutdown), failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Stop an instance' clearly states the action (stop) and target resource (instance), making the purpose understandable. However, it lacks specificity about what type of instance (e.g., compute instance) and doesn't distinguish it from similar tools like 'stop_db_node' or 'stop_db_system' in the sibling list, which are also stop operations on different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., instance must be running), exclusions, or compare it to sibling tools like 'start_instance' or other stop-related tools (e.g., 'stop_db_node'), leaving the agent to infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation4/5

Most tools are clearly distinct, targeting specific OCI resources (e.g., get_alarm vs. get_bucket). However, some overlap exists in database-related tools (e.g., get_database, get_db_node, get_db_system) and reboot/reset/start/stop operations for DB nodes/instances, which could cause confusion without careful reading of descriptions. Overall, the domain is broad but well-partitioned.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout (e.g., get_alarm, list_autonomous_databases, start_instance, query_metric_data). All tools use snake_case with clear, descriptive names, making the set predictable and easy to navigate.

Tool Count2/5

With 85 tools, the count is excessive for a single server, even given OCI's broad scope. This creates cognitive overload and makes it difficult for agents to efficiently select the right tool. A more modular approach (e.g., splitting into sub-servers for compute, storage, networking) would be more appropriate.

Completeness5/5

The tool set provides comprehensive coverage of OCI services, including compute, storage, networking, databases, identity, monitoring, and cost management. It supports full CRUD-like operations (get/list for retrieval, start/stop/reboot for management) and includes essential utilities like profile management and metric/log queries, leaving no obvious gaps for the domain.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables interaction with Oracle Cloud Infrastructure services through a unified interface. Supports comprehensive OCI resource management including compute instances, storage, networking, databases, and monitoring through natural language commands in VS Code.
    1
    3
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with secure, natural-language access to Oracle Cloud Infrastructure through 69 tools covering services like compute, storage, networking, and databases. It features deep IAM integration and supports deployment across platforms like Claude Desktop, Cursor, and OCI Generative AI.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural-language access to Oracle Cloud Infrastructure resources, allowing users to query compute instances, OKE clusters, networking, and Object Storage via MCP tools.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jopsis/mcp-server-oci'

If you have feedback or need assistance with the MCP directory API, please join our Discord server