0.0 / 30
What changed in the harness
Selection accuracy 98→96, token cost up 15%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
20.5 / 30
03Economics
17.4 / 20
04Discoverability
15.5 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
34 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
get_pricing |
name_restates_behavior no_return_description |
Get OCI pricing for a resource in one of the supported service categories (compute, storage, database, networking, kubernetes). Optionally filter by a specific resource type (e.g., "E5", "block", "autonomous") and by region, though OCI has consistent pricing across commercial regions. Returns the pricing details (e.g., unit cost and billing unit) for the matching resource(s). |
list_services |
no_return_description |
List all OCI services that have pricing categories, optionally filtered by category such as compute, storage, database, networking, kubernetes, ai-ml, or observability. Returns the catalog of services and their pricing categories, useful for discovery before querying prices. |
compare_regions |
no_return_description |
Compare pricing for a specific resource across OCI regions. Because OCI maintains consistent pricing across all commercial regions, results typically show identical prices; use this to confirm parity or spot exceptions. Returns the per-region pricing breakdown for the given service and resource type. |
list_regions |
name_restates_behavior no_return_description |
Get the full catalog of OCI regions with their geographic locations, useful for choosing a region for price lookups or deployment. Returns a list of region names with their location details. |
calculate_monthly_cost |
name_restates_behavior params_unexplained no_return_description |
Estimate the total monthly cost of an OCI configuration built from up to four resource groups: compute (shape, OCPUs, memory, and hours per month, default 730), storage (block, object, archive, and file volumes in GB), database (type, ECPUs/OCPUs, storage in GB, license included or BYOL), and networking (load balancer bandwidth in Mbps and outbound data in GB). Include only the groups you use; region defaults to us-ashburn-1. Returns an itemized and total estimated monthly cost. |
quick_estimate |
no_return_description |
Get a quick monthly cost estimate for common deployment presets (small-web-app, medium-api-server, large-database, ml-training, kubernetes-cluster), optionally in a specific OCI region. Returns the estimated monthly cost for the chosen preset. |
list_compute_shapes |
name_restates_behavior no_return_description |
Browse OCI compute offerings (VMs, bare metal, GPU) with their OCPU and memory pricing. Optionally filter by shape family (e.g., E4, E5, A1, GPU), by type (flexible-vm, bare-metal, gpu), or by a maximum hourly OCPU price. Returns the matching shapes with their pricing. |
get_compute_shape_details |
name_restates_behavior no_return_description |
Retrieve full pricing and configuration options for a specific compute shape family (e.g., VM.Standard.E5.Flex), useful when sizing an instance or estimating cost. Returns detailed pricing and supported configurations for that shape. |
compare_compute_shapes |
name_restates_behavior no_return_description |
Compare hourly OCPU and memory pricing across multiple compute shape families passed as an array. Returns a side-by-side pricing comparison of the given shapes. |
list_storage_options |
no_return_description |
Browse OCI storage offerings (block, object, file, archive), optionally filtered by storage type, with their pricing. Returns the storage options and associated pricing for cost planning. |
calculate_storage_cost |
name_restates_behavior params_unexplained no_return_description |
Estimate monthly storage cost from a configuration: block volume size in GB with a performance tier (basic, balanced, high, ultra), object storage size in GB with a tier (standard, infrequent, archive), and file storage size in GB. Include only the storage types you use. Returns the estimated monthly cost for the specified storage. |
compare_storage_tiers |
name_restates_behavior no_return_description |
Compare per-GB pricing across storage tiers for a given size in GB, useful for choosing the cheapest tier for a workload. Returns a pricing comparison across tiers for the specified size. |
list_database_options |
name_restates_behavior no_return_description |
Browse OCI database offerings (Autonomous, MySQL, PostgreSQL, NoSQL, base-db, Exadata) with pricing, optionally filtered by database type and license type (included or byol). Returns the matching database options with their pricing. |
calculate_database_cost |
name_restates_behavior params_unexplained no_return_description |
Estimate the cost of a database configuration: type (e.g., autonomous-transaction-processing, mysql-heatwave, base-database-vm), compute units (ECPUs or OCPUs), storage in GB, license type (included or byol), and hours per month. Returns the estimated cost for the specified database setup. |
compare_database_options |
name_restates_behavior params_unexplained no_return_description |
Compare candidate database options for a specific workload type (oltp, analytics, document, or general) to find the most cost-effective choice. Returns a pricing comparison of the database options suited to that workload. |
list_networking_options |
no_return_description |
Browse OCI networking offerings (load balancers, FastConnect, VPN, egress, gateways), optionally filtered by type, with their pricing. Many networking services are FREE. Returns each networking option with its pricing or free status. |
calculate_networking_cost |
name_restates_behavior params_unexplained no_return_description |
Estimate networking cost for a configuration: number of flexible and network load balancers, load balancer bandwidth in Mbps, outbound data in GB, FastConnect links at 1/10/100 Gbps, VPN connections, and NAT gateways. Applies free tier credits where applicable. Returns the estimated monthly networking cost. |
compare_data_egress |
name_restates_behavior no_return_description |
Compare OCI data egress pricing against AWS, Azure, and GCP for a given monthly outbound data volume in GB, for multi-cloud cost planning. Returns a cross-provider cost comparison for that volume. |
list_kubernetes_options |
name_restates_behavior no_return_description |
Browse OKE (Kubernetes) cluster options (basic, enhanced, virtual-nodes) with pricing; basic clusters are FREE. Use this to pick a cluster type before estimating cost. Returns the cluster options and their pricing. |
calculate_kubernetes_cost |
params_unexplained no_return_description |
Estimate the cost of an OKE cluster given the cluster type (basic or enhanced), worker node count, node shape (e.g., VM.Standard.E5.Flex), and OCPUs and memory per node, plus optionally virtual node sizing (pod OCPUs, pod memory, hours per month). Returns the estimated cluster cost including control plane and worker nodes. |
compare_kubernetes_providers |
params_unexplained no_return_description |
Compare OKE pricing against AWS EKS, Azure AKS, and GCP GKE for a cluster with the given node count, OCPUs per node, and memory per node. Returns a cross-provider pricing comparison for that configuration. |
get_free_tier |
name_restates_behavior no_return_description |
Get details about OCI Always Free tier resources and their limits, useful for planning free workloads. Returns the Always Free tier resource list with details. |
get_pricing_info |
no_return_description |
Get metadata about the pricing data used by this server (e.g., last updated date, source). Returns the data provenance metadata, such as the last update time and source. |
list_realtime_categories |
no_return_description |
List all service categories available from Oracle's real-time pricing API (e.g., Compute, Storage, Database) for navigating real-time pricing data. Returns the list of available categories. |
calculate_multicloud_database_cost |
name_restates_behavior params_unexplained no_return_description |
Estimate the monthly cost of running an Oracle database on Azure, AWS, or Google Cloud before deployment. Returns an estimated monthly price breakdown based on the provider, database type, compute units, storage, and license choice. databaseType selects the deployment shape: autonomous-serverless, autonomous-dedicated, exadata, exascale, or base-db. |
list_observability_services |
name_restates_behavior no_return_description |
Enumerate OCI Observability offerings (APM, Logging, Log Analytics, Monitoring, Stack Monitoring) to find monitoring and logging options that fit your workload. Optionally filter by type. Returns the list of matching observability services with their pricing details. |
list_integration_services |
name_restates_behavior no_return_description |
Enumerate OCI Integration offerings (Integration Cloud/OIC, GoldenGate, Data Integration, Streaming, Queue) to find data movement and application integration options. Optionally filter by type. Returns the list of matching integration services with their pricing details. |
list_security_services |
name_restates_behavior no_return_description |
Enumerate OCI Security offerings (Data Safe, Cloud Guard, Vault, WAF, Network Firewall, Vulnerability Scanning, Bastion) to find security controls for your environment. Optionally filter by type. Returns the list of matching security services with their pricing details. |
list_analytics_services |
name_restates_behavior no_return_description |
Enumerate OCI Analytics offerings (Analytics Cloud, Big Data Service, Data Flow, Data Catalog, Data Science) to find data processing and analytics options. Optionally filter by type. Returns the list of matching analytics services with their pricing details. |
list_developer_services |
name_restates_behavior no_return_description |
Enumerate OCI Developer offerings (Functions, Container Instances, API Gateway, APEX, DevOps) to find tools for building and deploying applications. Optionally filter by type. Returns the list of matching developer services with their pricing details. |
list_media_services |
name_restates_behavior no_return_description |
Enumerate OCI Media offerings (Media Flow for transcoding, Media Streams for live/VOD streaming) to find video processing options. Optionally filter by type. Returns the list of matching media services with their pricing details. |
list_governance_services |
name_restates_behavior no_return_description |
Enumerate OCI Governance offerings (Access Governance, Fleet Management, License Manager) to find compliance and administration controls. Optionally filter by type. Returns the list of matching governance services with their pricing details. |
list_disaster_recovery_services |
name_restates_behavior no_return_description |
Enumerate OCI Full Stack Disaster Recovery pricing options for automating recovery of application stacks across regions. Returns the list of DR service offerings with their pricing details. |
get_services_summary |
name_restates_behavior no_return_description |
Retrieve an at-a-glance overview of all OCI services with pricing data. Returns overall counts by category and coverage information so you can quickly assess which service areas have pricing available. |
Selection evidence
Confusable tool pairs.
7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
calculate_database_cost |
calculate_multicloud_database_cost |
high | Both compute monthly database cost with identical inputs (computeUnits, storageGB, licenseType) and overlapping database types (autonomous, exadata). A task like 'estimate the cost of an autonomous Oracle database with 4 ECPUs' that omits the cloud provider is genuinely ambiguous, especially since calculate_monthly_cost nudges toward OCI-native but the multicloud tool requires provider. |
get_pricing |
get_pricing_info |
medium | A user asking 'get me the OCI pricing info' matches both tool names lexically; get_pricing returns actual prices while get_pricing_info only returns metadata (last-updated, source). Without reading descriptions carefully, an agent can pick the wrong one for a plain 'pricing info' request. |
list_services |
list_aiml_services |
medium | list_services explicitly supports the 'ai-ml' category filter while list_aiml_services is the dedicated AI/ML list. A task like 'list AI/ML service pricing' fits both tools, and nothing in the descriptions says the umbrella tool is preferred, so selection is ambiguous. |
list_integration_services |
list_media_services |
medium | Both overlap on 'streaming': list_integration_services includes the Streaming service while list_media_services includes Media Streams. A task like 'list OCI streaming services' is genuinely ambiguous without knowing which streaming product the user means. |
list_database_options |
compare_database_options |
low | A task phrased as 'show me the database options for our OLTP workload' fits both: list_database_options enumerates options (filter by type/license) and compare_database_options takes a workloadType. The intent to just browse vs. formally compare can cause the wrong choice. |
calculate_storage_cost |
calculate_database_cost |
low | A task like 'calculate the storage cost for my autonomous database' is ambiguous because calculate_database_cost takes storageGB as part of a database configuration while calculate_storage_cost purely computes storage. Both schemas accept storage-related inputs, so the wrong member is plausible. |
list_compute_shapes |
get_compute_shape_details |
low | A request like 'give me the compute shape details' matches both: list_compute_shapes enumerates all shapes with OCPU/memory pricing, while get_compute_shape_details targets one specific shape family. Without a concrete shape name the agent may choose either. |
Compare the field