io.github.ryanmat/logicmonitor
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.ryanmat/logicmonitorSummarize current active alerts and their device impact for the last 24 hours."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LogicMonitor MCP Server
Model Context Protocol (MCP) server for LogicMonitor REST API v3 integration. Enables AI assistants to interact with LogicMonitor monitoring data through 306 structured tools, 15 workflow prompts, and 26 resources. Optional integrations: IBM watsonx.ai for Granite TTM forecasting and NL summaries, Terraform IaC for any provider, and HuggingFace local Granite model fallback.
Works with any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Continue, Cline, and more.
Quick Start
1. Get your LogicMonitor Bearer Token:
Log into your LogicMonitor portal
Go to Settings → Users and Roles → API Tokens
Create a new API-only user or add a token to an existing user
Copy the Bearer token
2. Configure your MCP client:
For Claude Code (CLI):
claude mcp add logicmonitor \
-e LM_PORTAL=yourcompany.logicmonitor.com \
-e LM_BEARER_TOKEN=your-bearer-token \
-- uvx --from lm-mcp lm-mcp-serverWith IBM watsonx.ai integration (optional -- adds Granite TTM forecasting and NL summaries):
claude mcp add logicmonitor \
-e LM_PORTAL=yourcompany.logicmonitor.com \
-e LM_BEARER_TOKEN=your-bearer-token \
-e WATSONX_API_KEY=your-ibm-cloud-api-key \
-e WATSONX_URL=https://us-south.ml.cloud.ibm.com \
-e WATSONX_PROJECT_ID=your-watsonx-project-id \
-- uvx --from "lm-mcp[ibm]" lm-mcp-serverWith Terraform IaC (optional -- adds terraform plan/apply/generate tools):
claude mcp add logicmonitor \
-e LM_PORTAL=yourcompany.logicmonitor.com \
-e LM_BEARER_TOKEN=your-bearer-token \
-e TF_WORKSPACE_DIR=/path/to/terraform/workspaces \
-- uvx --from lm-mcp lm-mcp-serverWith HuggingFace local models (optional -- local Granite TTM + NL summaries, no cloud API needed):
claude mcp add logicmonitor \
-e LM_PORTAL=yourcompany.logicmonitor.com \
-e LM_BEARER_TOKEN=your-bearer-token \
-- uvx --from "lm-mcp[huggingface]" lm-mcp-serverFor Claude Desktop, add to your config file (see MCP Client Configuration below).
3. Verify it's working:
claude mcp listYou should see: logicmonitor: uvx --from lm-mcp lm-mcp-server - ✓ Connected
4. Test with a prompt:
"Show me all critical alerts in LogicMonitor"Related MCP server: LogicMonitor MCP Server
What's New in v4.2.0
Multi-portal mode arrives, hardened. A single server can now serve many customer
portals, selecting the active one at runtime with list_portals, use_portal,
current_portal, and reload_portals — one entry in your MCP client instead of
one server (and one pasted token) per portal. Credentials live in an
age-encrypted vault, every portal is read-only unless its vault record says
otherwise, and the mode is deliberately stdio-only: the server refuses to start
it on the shared HTTP transport. The release also carries a full dependency
refresh clearing 53 dependabot alerts across the lockfile.
What's New in v4.1.0
Native OTLP metrics arrive. LogicMonitor's new OTLP Metrics feature (feature-flag
gated, Prometheus-backed) ships in its first phase with a single UI surface (the
dashboard Advanced Metrics Widget) and no Metrics Explorer yet; these four tools
are the first programmatic window into that data: get_otlp_metric_names,
get_otlp_metric_labels, and get_otlp_label_values for discovery, and
query_otlp_metrics for full PromQL range queries returning time-series matrices.
All four were validated live against a flag-enabled portal fed by a real OTel
collector (Kubernetes cAdvisor and application metrics), translate the
feature-disabled portal responses into a clear availability notice, and cap large
matrix responses with even-stride downsampling so they stay LLM-friendly.
What's New in v4.0.0
Major. Every tool now wraps an endpoint proven to exist, validated against a live
portal. Six tools that called nonexistent API paths since introduction are removed
(get_cloud_cost_accounts, get_cost_summary, get_resource_cost,
get_remediation_status, get_remediation_history, get_batchjob_history); the cost
recommendation tools move onto the working /cost-optimization API; the Service Insight
tools query real Service Insight objects (deviceType 6 devices and BizService groups)
instead of the legacy v1 websites API. The Automated Diagnostics & Remediation surface
arrives in full: get_diagnostic_remediation_assignments and
get_diagnostic_remediation_results (structured execution records with script output,
replacing audit-log scraping), execute_diagnostic, full CRUD plus import/export for
diagnostic and remediation sources, and the new action chain / action rule namespace
(11 tools including the set_action_rule_status toggle). update_logicmodule gains the
two new source types and its apply mode actually applies now (it previously tripped its
own sub-tools' confirm guards). run_report executions are pollable via
get_report_execution, get_alert_details can fetch the full message body, and NextGen
reports are visible to the report list tools.
Full release history, including v3.9.x and earlier, is in CHANGELOG.md. The v3.8.0 networking intelligence tools have a dedicated reference: documentation/networking-intelligence.md.
Features
306 Tools across comprehensive LogicMonitor API coverage (277 LM + 18 AAP + 10 Terraform + 1 watsonx):
Core Monitoring
Alert Management: Query, acknowledge, bulk acknowledge, add notes, view rules
Device Management: Full CRUD - list, create, update, delete devices and groups
Metrics & Data: Query datasources, instances, metric data, and graphs. Instance CRUD for manual datasource instances.
Dashboard Management: Full CRUD for dashboards, widgets, and groups
SDT Management: Create, list, bulk create/delete Scheduled Downtime
Collector Management: List collectors and collector groups
Extended Features
Website Monitoring: Full CRUD for synthetic checks and website groups
Report Management: List, view, run reports, manage schedules
Escalation Management: Full CRUD for escalation chains and recipient groups
Alert Rules: Full CRUD for alert routing rules
User & Role Management: View users, roles, access groups, API tokens
Ops Management: Audit logs, ops notes, login/change audits
Automated Diagnostics & Remediation: Assigned-source resolution, structured execution results with script output, diagnostic/remediation source CRUD, manual execution, action chains and rules
Native OTLP Metrics (preview): Metric and label discovery plus PromQL range queries against the feature-flag-gated OTLP metrics store
AI Analysis Tools
Server-side intelligence that transforms raw monitoring data into actionable insights:
Alert Correlation: Automatically clusters related alerts by device, datasource, and temporal proximity — replaces dozens of manual API calls with a single aggregated view
Alert Statistics: Aggregated alert counts by severity, top-10 devices and datasources, time-bucketed distributions for trend analysis
Metric Anomaly Detection: Multi-method anomaly detection (z-score, IQR, MAD) with auto-selection based on data distribution
Metric Baselines: Save baseline snapshots of metric behavior, then compare current performance against the baseline to detect drift
Scheduled Analysis: HTTP API endpoints for triggering analysis workflows (alert correlation, RCA, top talkers, health checks) from external schedulers and webhooks
ML/Statistical Analysis Tools
Pure-Python statistical methods for capacity planning, trend analysis, and operational scoring:
Metric Forecasting: Linear regression, Holt-Winters triple exponential smoothing, and IBM Granite TTM (via watsonx.ai, optional) with auto-selection, confidence intervals, and threshold breach prediction
Metric Correlation: Pearson correlation matrix across multiple metric series with strong-correlation highlighting
Error Budget Tracking: SLO-based error budget calculation with burn rate, projected exhaustion, and status classification
Change Point Detection: CUSUM algorithm for identifying regime shifts and mean-level changes
Alert Noise Scoring: Shannon entropy and flap detection to quantify alert noise (0-100) with tuning recommendations
Seasonality Detection: Autocorrelation-based periodicity detection at standard intervals with peak-hour identification
Availability Calculation: SLA-style uptime percentage from alert history with MTTR, incident counts, and per-device breakdown
Blast Radius Analysis: Topology-based downstream impact scoring for device failure scenarios
Change Correlation: Cross-references alert spikes with audit/change logs to identify change-induced incidents
Trend Classification: Categorizes metrics as stable, increasing, decreasing, cyclic, or volatile
Device Health Scoring: Multi-metric composite health score (0-100) using z-score analysis with configurable weights
Composite Workflow Tools
Multi-step analysis tools that combine several sub-tools into a single call. Each supports detail_level ("summary" or "full"), optional summarize=true for plain-English NL summaries via IBM Granite (requires watsonx.ai), and handles sub-tool failures gracefully with partial results.
Triage: Correlates active alerts, scores noise, analyzes blast radius, and cross-references recent changes
Health Check: Device health score, monitoring coverage, anomaly detection, active alerts, and 30-day availability
Capacity Plan: Per-datasource forecasting, trend classification, seasonality detection, and change point analysis
Portal Overview: Alert statistics, collector health, active SDTs, alert clusters, noise assessment, and down devices
Diagnose: Alert details, device context, correlation, blast radius, health scoring, and root cause analysis
Update LogicModule (Safe Partial Updates):
update_logicmodule(type, id, changes, mode)exports the current full definition, deep-merges yourchanges, validates required fields, and returns a dry-run diff (default) or applies the merge. Prevents the full-replace blanking that wiped production Groovy scripts in two prior incidents. Supports configsource, datasource, eventsource, logsource, propertysource, topologysource.Search Tools: Keyword search across all tools by name and description with category filtering
APM Trace Tools
Service discovery and RED metrics for LogicMonitor APM (Application Performance Monitoring):
Service Discovery: List all traced services, inspect individual service details and properties
Operation Listing: Discover endpoints/routes monitored within each service
RED Metrics: Duration, error count, and operation count at both service and per-operation level
Alert Integration: View active alerts for any traced service
Property Inspection: OTel attributes, namespace info, and auto-discovered metadata
Ansible Automation Platform Integration
18 tools for observability-driven remediation via Ansible Automation Platform (AAP). Connects LogicMonitor alerts to automated remediation playbooks.
Job Templates: List, inspect, and launch job templates with extra variables and host limits
Job Execution: Launch jobs, check status, view output, cancel or relaunch runs
Workflows: Launch workflow templates, monitor multi-step automation sequences
Inventories & Hosts: List inventories, inspect hosts for targeted remediation
Projects & Credentials: Browse available projects and credentials (secrets never exposed)
Write Protection: launch_job, launch_workflow, cancel_job, relaunch_job require
LM_ENABLE_WRITE_OPERATIONS=trueJinja2 Safety: All extra_vars inputs are validated to prevent template injection
AAP tools are optional — they only appear when AWX_URL and AWX_TOKEN are configured. See Example Playbooks for remediation templates.
IBM watsonx.ai Integration
Optional AI-powered enhancements using IBM Granite foundation models via watsonx.ai. Requires an IBM Cloud account with a watsonx.ai project (Lite/free tier supported).
Granite TTM Forecasting: ML-powered time series forecasting using IBM Granite Tiny Time Mixer (TTM). Use
method="ttm"onforecast_metricfor 96-step predictions that detect seasonality and non-linear patterns. Requires 512+ data points. Gracefully falls back to statistical methods when data is insufficient.Granite NL Summaries: Plain-English shift-handoff summaries on composite workflow tools (
triage,diagnose,health_check,capacity_plan,portal_overview). Passsummarize=trueto append an IBM Granite-generated analysis summary to the structured output.watsonx_summarize: Standalone tool that takes any JSON data and generates a concise NL summary via Granite 4.0. Useful for summarizing output from any MCP tool.
watsonx tools are optional — they only appear when WATSONX_API_KEY and WATSONX_PROJECT_ID are configured. Install with lm-mcp[ibm] to include the IBM SDK dependencies.
Setup:
Create a free IBM Cloud account at cloud.ibm.com
Provision watsonx.ai Runtime (Lite plan, free) from the IBM Cloud catalog
Create a watsonx.ai project and associate the Runtime instance
Generate an IBM Cloud API key at cloud.ibm.com/iam/apikeys
Configure the MCP server with
WATSONX_API_KEY,WATSONX_URL, andWATSONX_PROJECT_ID
Terraform Integration
11 tools for Infrastructure as Code workflows with any Terraform provider. AI agents can author HCL, use pre-made scripts, or reverse-engineer existing LM resources.
terraform_init: Initialize workspace and download providers
terraform_validate: Syntax-check HCL configuration
terraform_plan: Preview changes with structured JSON output
terraform_apply: Apply changes (triple-gated: write perms + config flag + confirm param)
terraform_destroy: Destroy infrastructure (same triple gate)
terraform_import: Import existing resources into Terraform state
terraform_state_list / terraform_state_show: Inspect current state
terraform_output: View Terraform outputs
terraform_write_config: Write HCL files to workspace directories
terraform_generate: Export existing LM portal resources as HCL using the
logicmonitor/logicmonitorprovider
Terraform tools are optional -- they only appear when TF_WORKSPACE_DIR is configured. Requires the terraform CLI installed separately.
Three entry points:
Agent-authored: AI generates HCL from natural language, writes to workspace, plans, applies
Pre-made scripts: Point
TF_WORKSPACE_DIRat existing.tffiles, agent operates on themReverse-engineer:
terraform_generateexports LM resources as HCL, then import into state
HuggingFace Local Fallback
When watsonx.ai API credentials are not configured, TTM forecasting and NL summaries automatically fall back to local Granite models via HuggingFace transformers. Install with lm-mcp[huggingface].
Priority chain: watsonx.ai API (remote) > HuggingFace local > statistical/linear
TTM Model:
ibm-granite/granite-timeseries-ttm-r2(512 context, 96 forecast)LLM Model:
ibm-granite/granite-3.3-2b-instruct(2B params, runs on CPU)Models lazy-load on first inference call (initial download: ~500MB TTM, ~4GB LLM)
Same interface as WatsonxClient -- all existing watsonx tools work with either backend
LogicModules
DataSources: Query and export datasource definitions
ConfigSources: Query definitions, retrieve device config data from the Config Archive, view diffs, trigger on-demand collection, and audit change history
EventSources: Query and export event detection modules
PropertySources: Query, create, and export property collection modules
TopologySources: Query and export topology mapping modules
LogSources: Query and export log collection modules
Import Support: Import LogicModules from JSON definitions
Advanced Capabilities
Cost Optimization: Cost recommendations, recommendation categories, idle resources (LM Envision)
Network Topology: Device neighbors, interfaces, flows, connections
Batch Jobs: View and manage batch job execution history
Log/Metric Ingestion: Push logs and metrics via LMv1 authentication
MCP Protocol Features
Resources: 26 schema/enum/filter/guide resources for API reference
Prompts: 15 workflow templates (incident triage, RCA, capacity forecasting, remediation execution, etc.)
Completions: Auto-complete for tool arguments
Claude Code Skills
Pre-built slash-command workflows for Claude Code that orchestrate multiple tools into guided operational runbooks:
Skill | Command | Description |
Alert Triage |
| Investigate active alerts, score noise, correlate clusters, assess blast radius, take action |
Device Health |
| Comprehensive health check — metrics, anomalies, health score, availability, topology |
Portal Overview |
| Portal-wide snapshot for shift handoff — alerts, collectors, SDTs, down devices |
Capacity Planning |
| Trend analysis, seasonality detection, breach forecasting, right-sizing |
APM Investigation |
| Service discovery, operation-level RED metrics, alert correlation |
Remediation |
| Diagnose alert, find/generate playbook, launch AAP job, verify fix |
Skills ship with the repo — clone it and invoke /lm-triage in Claude Code to get started.
Operational Features
Security-First: Read-only by default, write operations require explicit opt-in
Rate Limit Handling: Automatic retry with exponential backoff and jitter
Server Error Recovery: Automatic retry on 5xx server errors
Pagination Support: Handle large result sets with offset-based pagination
Session Persistence: Optional file-backed session variables that survive restarts
Multi-Portal Mode (optional)
Work across many customer portals from a single server entry instead of one server (and one token) per portal. Set LM_MULTI_PORTAL=true and point the server at a credential vault; the full tool set loads once, and you switch the active portal at runtime. Four tools manage it: list_portals, use_portal, current_portal, and reload_portals. Credentials come from an age-encrypted vault (or a plaintext JSON file for testing) rather than the environment, and each portal is read-only unless explicitly marked writable — so an assistant can browse any portal but cannot change one by accident. Multi-portal mode is stdio-only (the server refuses to start it on the HTTP transport) and Terraform tools are unavailable in it. Unmodified single-portal behavior is unchanged (no LM_MULTI_PORTAL, fixed LM_PORTAL + token). See MULTIPORTAL.md.
Installation
Via PyPI (Recommended)
# Using uvx (no install needed)
uvx --from lm-mcp lm-mcp-server
# Using pip
pip install lm-mcpFrom Source
git clone https://github.com/ryanmat/mcp-server-logicmonitor.git
cd mcp-server-logicmonitor
uv syncDocker Deployment
For remote/shared deployments using HTTP transport:
cd deploy
cp .env.example .env
# Edit .env with your credentials
# Run with docker-compose
docker compose up -d
# With TLS via Caddy
docker compose --profile tls up -dThe server exposes health endpoints for container orchestration:
GET /health- Detailed health check with all component statusesGET /healthz- Liveness probe (200 OK or 503)GET /readyz- Readiness probe (includes connectivity check if enabled)
Kubernetes
deploy/k8s/deployment.yaml is a vendor-neutral Deployment and Service running
the published ghcr.io image. It works on AKS, EKS, GKE, OpenShift, or vanilla
Kubernetes, reads credentials from a Kubernetes secret you create, and wires the
liveness and readiness probes to the endpoints above. Apply it with
kubectl apply -f deploy/k8s/deployment.yaml after creating the secret
documented at the top of the file.
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | - | LogicMonitor portal hostname (e.g., |
| Yes* | - | API Bearer token (min 10 characters) |
| No | - | LMv1 API access ID (for ingestion APIs) |
| No | - | LMv1 API access key (for ingestion APIs) |
| No |
| Enable write operations (create, update, delete) |
| No |
| API version |
| No |
| Request timeout in seconds (range: 5-300) |
| No |
| Max retries for rate-limited/server error requests (range: 0-10) |
| No |
| Transport mode: |
| No |
| Serve many customer portals from one server, selected at runtime via |
| No | - | Path to the age-encrypted portal vault (multi-portal) |
| No | - | Path to the age identity that decrypts the vault (multi-portal) |
| No | - | Plaintext JSON portal map (multi-portal, testing only; the encrypted vault wins when both are set) |
| No |
| HTTP server bind address |
| No |
| HTTP server port |
| No | - | Comma-separated CORS origins (default: none) |
| No | - | Require this bearer token on |
| No |
| Enable session context tracking |
| No |
| Number of tool calls to keep in history |
| No |
| Logging level: |
| No |
| Field validation: |
| No | - | Comma-separated tool names or glob patterns to enable (e.g., |
| No | - | Comma-separated tool names or glob patterns to disable (e.g., |
| No | - | Comma-separated category names to include: |
| No |
| Include LM API ping in health checks |
| No | - | File path for persistent session variables (survives restarts) |
| No | - | Ansible Automation Platform controller URL (e.g., |
| No | - | AAP personal access token |
| No |
| Verify SSL certificates for AAP connections |
| No |
| Request timeout in seconds for AAP API calls |
| No |
| Max retries for failed AAP API requests |
| No | - | IBM Cloud API key for watsonx.ai (enables Granite TTM + NL summaries) |
| No |
| IBM watsonx.ai endpoint URL |
| No | - | IBM watsonx.ai project ID |
| No |
| Request timeout in seconds for watsonx.ai API calls |
| No | - | Root directory for Terraform workspaces (enables Terraform tools) |
| No |
| Path to the terraform binary |
| No |
| Terraform command timeout in seconds |
| No |
| Enable terraform apply/destroy operations |
| No |
| HuggingFace TTM model name or path |
| No |
| HuggingFace LLM model name or path |
| No |
| Torch device for inference (cpu, cuda, mps, auto) |
| No | - | HuggingFace model cache directory |
*Either LM_BEARER_TOKEN or both LM_ACCESS_ID and LM_ACCESS_KEY are required.
Authentication Methods
Bearer Token (Recommended):
Simpler setup, works for most operations
Set
LM_BEARER_TOKEN
LMv1 HMAC (Required for Ingestion):
Required for
ingest_logsandpush_metricstoolsSet both
LM_ACCESS_IDandLM_ACCESS_KEYCan be used alongside Bearer token
Getting API Credentials
Bearer Token:
Log into your LogicMonitor portal
Go to Settings → Users and Roles → API Tokens
Create a new API-only user or add a token to an existing user
Copy the Bearer token
LMv1 Credentials:
Go to Settings → Users and Roles → Users
Select a user → API Tokens tab
Create or view the Access ID and Access Key
MCP Client Configuration
The Quick Start covers Claude Code. Every JSON-based client (Cursor, Claude Desktop, Cline, GitHub Copilot, Gemini CLI, OpenAI Codex) runs the same server with the same block:
{
"mcpServers": {
"logicmonitor": {
"command": "uvx",
"args": ["--from", "lm-mcp", "lm-mcp-server"],
"env": {
"LM_PORTAL": "yourcompany.logicmonitor.com",
"LM_BEARER_TOKEN": "your-bearer-token"
}
}
}
}Add LM_ENABLE_WRITE_OPERATIONS, LM_ACCESS_ID/LM_ACCESS_KEY (ingestion), or the watsonx/Terraform variables to env as needed. Per-client config file locations and exact steps (Claude Code, Cursor, Claude Desktop, OpenAI Codex, Cline, GitHub Copilot, Gemini CLI) are in documentation/client-setup.md.
Cursor's 40-tool cap
Cursor only loads the first 40 MCP tools, so the remaining ~240 are invisible to the agent. Use LM_MCP_CATEGORIES to fit a curated subset under the cap. The workflow category alone (triage, diagnose, health_check, portal_overview, capacity_plan, plus the scoring/correlation tools and update_logicmodule) is roughly 23 tools and covers the 80% case:
"env": {
"LM_PORTAL": "yourcompany.logicmonitor.com",
"LM_BEARER_TOKEN": "your-bearer-token",
"LM_MCP_CATEGORIES": "workflow"
}LM_MCP_CATEGORIES composes with LM_ENABLED_TOOLS by intersection (it only narrows, never expands); unset, the server returns all 306 tools. In multi-portal mode the four portal tools are exempt from category filtering (they are the mode's control plane) and do not count toward your curated set. See documentation/client-setup.md for a surgical LM_ENABLED_TOOLS example.
Available Tools
306 tools cover the full LogicMonitor surface plus the optional Ansible Automation Platform, Terraform, and IBM watsonx.ai integrations. The complete per-tool reference (every tool, its parameters, and its read/write classification) is in documentation/tools.md, generated from the tool registry so it never drifts.
Discover tools at runtime without leaving your client:
search_tools: keyword search across every tool by name and descriptionthe
lm://guide/tool-categoriesresource: all 306 tools grouped by domain
Tools are organized into these categories: Alerts, Alert Rules, Devices, Metrics, APM Traces, Dashboards, SDT, Collectors, Websites, Escalations, Device Properties, Reports, DataSources, LogicModules (Config/Event/Property/Topology/Log), Cost Optimization, Actions (Chains & Rules), Ingestion, Network & Topology, Batch Jobs, Ops & Audit, Users & Access, Services, Netscans, OIDs, Session, Correlation & Analysis, Baselines, ML/Statistical Analysis, Ansible Automation Platform, Remediation, Composite Workflows, and Error Budget.
MCP Resources
The server exposes 26 resources for API reference:
Schema Resources
URI | Description |
| Alert object fields, types, and descriptions |
| Device object fields and types |
| SDT (Scheduled Downtime) object fields |
| Dashboard object fields |
| Collector object fields |
| Escalation chain object fields |
| Report object fields |
| Website check object fields |
| DataSource definition fields |
| User object fields |
| Audit log entry fields |
Enum Resources
URI | Description |
| Alert severity levels: critical(4), error(3), warning(2), info(1) |
| Device status values: normal(0), dead(1), etc. |
| SDT types: DeviceSDT, DeviceGroupSDT, etc. |
| Alert cleared status: true, false |
| Alert acknowledgment status: true, false |
| Collector build types: EA, GD, MGD |
Filter Resources
URI | Description |
| Filter fields and operators for alert queries |
| Filter fields and operators for device queries |
| Filter fields and operators for SDT queries |
| Filter operators: |
Guide Resources
URI | Description |
| All 306 tools organized by domain category |
| Common filter patterns and query examples |
| Patterns for combining LogicMonitor with other MCP servers |
| Scenario-based best practices with recommendations and anti-patterns |
| Example output for key tools to help understand response formats |
MCP Prompts
Pre-built workflow templates for common tasks:
Prompt | Description | Arguments |
| Analyze active alerts, identify patterns, suggest root cause |
|
| Review resource utilization and identify capacity concerns |
|
| Generate environment health summary with key metrics |
|
| Generate alert digest grouped by severity or resource |
|
| Plan scheduled downtime for maintenance windows |
|
| Analyze cloud costs, find savings opportunities |
|
| Review recent changes, logins, and security events |
|
| Correlate alerts across devices to find common root causes |
|
| Assess collector load balancing, versions, and failover readiness |
|
| Guided troubleshooting for a specific device |
|
| Identify noisiest devices and datasources generating the most alerts |
|
| Guided root cause analysis combining alerts, topology, and change history |
|
| Forecast capacity trends and predict threshold breaches |
|
| Diagnose a LogicMonitor alert and remediate via Ansible Automation Platform |
|
| Execute a LogicMonitor remediation source with pre-execution safety checks |
|
Example Usage
Once configured, ask your assistant in natural language. A representative sample (the server understands far more across all 306 tools):
"List the first 5 devices in LogicMonitor" (quick connectivity check)
"Show me all critical alerts from the last hour"
"Acknowledge alert LMA12345 with note 'Investigating disk issue'"
"What datasources are applied to device 123, and get CPU metrics for the last hour"
"Create a dashboard called 'API Health' and add a graph widget"
"Create a 2-hour maintenance window (SDT) for device 123"
"Triage all critical alerts from the last 4 hours"
"Run a health check on device 123, then give me a portal overview for shift handoff"
"Forecast when memory on device 123 will hit 90%"
"What's the blast radius if device 789 goes down?"
"What diagnostics ran on device 123 today, and what did the scripts output?"
For power users, the server accepts LogicMonitor filter syntax directly, for example "Get devices where filter is 'displayName~prod,hostStatus:alive'".
Development
Running Tests
uv run pytest -vLinting
uv run ruff check src tests
uv run ruff format src testsProject Structure
src/lm_mcp/
├── __init__.py # Package exports
├── analysis.py # Scheduled analysis workflows and store
├── awx_config.py # AAP connection configuration
├── config.py # Environment-based configuration
├── exceptions.py # Exception hierarchy
├── health.py # Health check endpoints
├── logging.py # Structured logging
├── server.py # MCP server entry point
├── session.py # Session context with optional persistence
├── registry.py # Tool definitions and handlers (TOOLS + AWX_TOOLS)
├── validation.py # Field validation with suggestions
├── auth/
│ ├── __init__.py # Auth provider factory
│ ├── bearer.py # Bearer token auth
│ └── lmv1.py # LMv1 HMAC auth
├── client/
│ ├── __init__.py # Client exports
│ ├── api.py # Async HTTP client for LogicMonitor API
│ └── awx.py # Async HTTP client for AAP controller API
├── completions/
│ └── registry.py # Auto-complete definitions
├── prompts/
│ ├── registry.py # Prompt definitions
│ └── templates.py # Workflow template content
├── resources/
│ ├── registry.py # Resource definitions
│ ├── schemas.py # Schema content
│ ├── enums.py # Enum content
│ ├── filters.py # Filter content
│ ├── guides.py # Tool categories, query examples, orchestration guide
│ ├── best_practices.py # Scenario-based best practices and anti-patterns
│ └── examples.py # Example responses for key tools
├── transport/
│ ├── __init__.py # Transport abstraction
│ └── http.py # HTTP/SSE transport with analysis endpoints
└── tools/
├── __init__.py # Tool utilities
├── alerts.py # Alert management
├── alert_rules.py # Alert rule CRUD
├── ansible.py # Ansible Automation Platform tool handlers
├── baselines.py # Metric baseline save/compare
├── collectors.py # Collector tools
├── correlation.py # Alert correlation, anomaly detection, metric correlation
├── cost.py # Cost optimization
├── dashboards.py # Dashboard CRUD
├── devices.py # Device CRUD
├── escalations.py # Escalation/recipient CRUD
├── event_correlation.py # Change-alert correlation
├── forecasting.py # Forecast, trend, seasonality, change points
├── imports.py # LogicModule import
├── ingestion.py # Log/metric ingestion
├── metrics.py # Metrics and data
├── scoring.py # Alert noise, availability, device health
├── sdts.py # SDT management
├── session.py # Session management tools
├── stats_helpers.py # Shared statistical math utilities (incl. Holt-Winters, IQR, MAD)
├── topology_analysis.py # Blast radius analysis
├── websites.py # Website CRUD
├── workflows.py # Composite workflow tools (triage, health_check, etc.)
├── metric_presets.py # Metric-type presets for auto-configuration
└── ... # Additional tool modules
examples/playbooks/
├── lm-remediate-disk-cleanup.yml
├── lm-remediate-service-restart.yml
├── lm-remediate-log-rotate.yml
└── lm-remediate-memory-cache-clear.yml
deploy/
├── Dockerfile # Production Docker image
├── docker-compose.yml # Full stack deployment
├── Caddyfile # TLS proxy configuration
└── .env.example # Environment templateTroubleshooting
"Failed to connect" in Claude Code
If claude mcp list shows ✗ Failed to connect, the server is missing environment variables. The -e flags must be included when adding the server:
# Remove the broken config
claude mcp remove logicmonitor
# Re-add with environment variables
claude mcp add logicmonitor \
-e LM_PORTAL=yourcompany.logicmonitor.com \
-e LM_BEARER_TOKEN=your-bearer-token \
-- uvx --from lm-mcp lm-mcp-serverNote: Setting environment variables in your shell or
.envfile won't work—Claude Code spawns the MCP server as a subprocess with its own environment.
"Write operations are disabled"
Write operations (acknowledge, create SDT, etc.) are disabled by default. Set LM_ENABLE_WRITE_OPERATIONS=true in your environment.
"spawn uvx ENOENT" in Claude Desktop
Claude Desktop can't find uvx. Use the full path:
{
"command": "/Users/yourname/.local/bin/uvx",
"args": ["--from", "lm-mcp", "lm-mcp-server"]
}Find your uvx path with: which uvx
Ingestion API Errors
The ingest_logs and push_metrics tools require LMv1 authentication. Bearer tokens don't work with ingestion APIs. Add LM_ACCESS_ID and LM_ACCESS_KEY to your configuration.
Rate Limit Errors
The server automatically retries rate-limited requests with exponential backoff. If you're consistently hitting limits, reduce request frequency or contact LogicMonitor support.
Authentication Errors
Verify your bearer token is correct and has appropriate permissions. API tokens can be managed in LogicMonitor under Settings → Users and Roles → API Tokens.
License
MIT License - see LICENSE file.
Available Tools
273 toolsacknowledge_alertA
Acknowledge an alert (requires write permission)
Common mistakes: alert_id works with or without the LMA prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional acknowledgment note | |
| alert_id | Yes | Alert ID (with or without LMA prefix) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read, non-destructive, non-idempotent operation. The description adds a useful behavioral detail beyond annotations by requiring write permission, which helps an agent anticipate authorization failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the core action, then add the single most likely input pitfall. There is no unrelated detail or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, no-output-schema tool, the description plus annotations and schema are sufficient for an agent to call it correctly. It could mention what the response looks like, but that is not essential for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents alert_id and note. The description's LMA-prefix guidance is helpful, but it merely restates what the schema says, so it adds no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Acknowledge an alert." The singular scope implicitly distinguishes it from sibling bulk_acknowledge_alerts, and the action is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates a prerequisite (write permission) and a common mistake about the alert_id format, but it does not explicitly explain when to choose this tool over related siblings such as bulk_acknowledge_alerts or add_alert_note. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_alert_noteA
Add a note to an alert without acknowledging (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text to add | |
| alert_id | Yes | Alert ID (with or without LMA prefix) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it explicitly says the tool does not acknowledge the alert and requires write permission. Annotations only indicate non-read-only and non-idempotent behavior, so this extra information is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the action, the key behavioral distinction, and the permission requirement. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool, the description covers the essential behavioral context: what it does, what it does not do, and the permission needed. It does not describe return values, but no output schema exists, and the operation is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for both parameters, including the alert ID prefix flexibility. The tool description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Add a note to an alert.' It also distinguishes itself from sibling tools by explicitly stating 'without acknowledging,' which separates it from acknowledge_alert and similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without acknowledging' gives clear context for when to use this tool versus an acknowledgment action, while 'requires write permission' sets an important prerequisite. It does not explicitly name sibling alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_device_instanceA
Add a monitored instance to a datasource on a device (requires write permission). Used for datasources without Active Discovery (e.g. ServiceStatus).
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| wild_value | Yes | Wildcard value used by the datasource to query this instance (e.g. 'nginx.service' for ServiceStatus, a port number for Port-) | |
| description | No | Optional instance description | |
| display_name | Yes | Display name for the instance | |
| device_datasource_id | Yes | Device-DataSource ID (from get_device_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds the auth requirement ('requires write permission') and the usage context, which go beyond annotations. It does not discuss failure modes or side effects, but the annotations cover the safety profile sufficiently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The core purpose is front-loaded, followed by a usage qualifier. Efficient and directly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with no output schema, the description covers the essential purpose and usage context. It lacks an explicit note about return values (e.g., whether the created instance ID is returned), but given the high schema coverage and annotations, this is a minor gap. The description is adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have detailed descriptions, including examples for wild_value. The tool description does not add extra semantic value beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'monitored instance to a datasource on a device', making the purpose unambiguous. It also distinguishes from sibling update/delete instance tools by focusing on creation and mentions a specific use case (datasources without Active Discovery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear condition for use ('Used for datasources without Active Discovery') and an example (ServiceStatus), giving the agent a decision rule. It doesn't explicitly list alternatives or exclusion cases, but the context strongly implies when to choose this tool over related instance operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_ops_noteB
Add an ops note (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text | |
| tags | No | Tags | |
| group_ids | No | Device group IDs to scope the note to | |
| device_ids | No | Device IDs to scope the note to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly mentions the write-permission requirement, which adds useful access-control context beyond the annotations. The annotations already indicate this is a writing operation (readOnlyHint=false) and non-idempotent, so the description does not need to restate those. It does not disclose side effects or scoping behavior, but the permission note provides some added transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that communicates both the operation and the key permission constraint. There is no filler, and the core purpose is front-loaded. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with fully described parameters, the description is minimally adequate, but it lacks important contextual guidance: when to add an ops note versus other note/update tools, what the note is used for, and whether the scoping fields are mutually exclusive or additive. The absence of an output schema also leaves the return behavior unexplained, though that is not strictly required by the rubric.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents all four parameters (note, tags, group_ids, device_ids). The description adds no additional meaning about parameter semantics, such as how scoping works or whether tags are controlled vocabulary. The baseline of 3 applies because the schema carries the full weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Add an ops note.' It is readily distinguishable from sibling update/delete/get ops-note tools by the verb. However, it does not explicitly differentiate itself from conceptually similar tools like add_alert_note, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 add_alert_note or update_ops_note. The only added context is 'requires write permission,' which is a prerequisite rather than a usage guideline. No exclusions, alternatives, or recommended contexts are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_widgetB
Add a widget to a dashboard (requires write permission). For text widgets: use 'content' (not 'html') as the config key. For bigNumber widgets: dataPoints need 'name' field, include 'bigNumberItems' array, colorThresholds use 'relation'/'threshold', aggregateFunction is lowercase (e.g., 'average'). For cgraph widgets: deviceDisplayName/deviceGroupFullPath/instanceName must be GlobMatchToggle objects {'value': '...', 'isGlob': true}, dataPoints need 'display' object, graphInfo needs 'aggregate': false when using topX. For deviceSLA widgets: required config fields are 'groupName' (not deviceGroupFullPath), 'deviceName', 'dataSourceFullName', 'metric', 'threshold'. Also required: 'daysInWeek' (e.g., '1,2,3,4,5,6,7'), 'periodInOneDay' (e.g., '0:00-23:59'), 'displayType' (0=availability, 1=timeline), 'calculationMethod' (0=percent, 1=actual), 'unmonitoredTimeAlertStatus' (0=ignore, 1=warning, 2=error, 3=critical).
| Name | Required | Description | Default |
|---|---|---|---|
| row | No | Start row. Omit to append below existing widgets. | |
| name | Yes | Widget name | |
| config | No | Widget configuration (type-specific). Merged into the request payload. | |
| col_span | No | Width in columns, 1-12 (default 6 when a position is set). | |
| row_span | No | Height in rows (default 1 when a position is set). | |
| description | No | Widget description | |
| widget_type | Yes | Widget type (cgraph, sgraph, bigNumber, text, html, alert, noc, gauge, pieChart, table, etc.) | |
| column_index | No | Start column, 1-12. Omit to let the portal auto-place the widget below existing widgets. | |
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes 'requires write permission', which aligns with readOnlyHint=false, but it does not disclose other behavioral aspects such as side effects, return values, or error behavior. The annotations are all false or open-world, so the description carries the burden, yet it focuses on config requirements rather than operational behavior. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a long, dense paragraph without formatting. While each sentence carries essential type-specific information, the structure makes it hard to scan. It is not concise, but given the complexity of config options, the length is justified. A bulleted or sectioned format would improve readability without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description does not mention what the tool returns (e.g., created widget ID or object). It also omits error scenarios, rollback behavior, or limitations. The extensive config details ensure a correct request, but an agent cannot predict the response format, which is a notable gap for successful follow-up actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial value by detailing required config fields for text, bigNumber, cgraph, and deviceSLA widget types. It clarifies expected structures (e.g., GlobMatchToggle objects, 'bigNumberItems' array) and value constraints (e.g., 'displayType' 0/1). This far exceeds the generic 'Widget configuration (type-specific)' in the schema and is crucial for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a widget to a dashboard', with a permission note. This verb+resource pair distinguishes it from sibling tools like update_widget, delete_widget, and get_widget, and the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternatives (e.g., update_widget for existing widgets). It provides extensive configuration guidance for different widget types, but that is how-to-use parameter advice, not tool-selection guidance. No exclusions or alternative scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_blast_radiusARead-onlyIdempotent
Analyze the blast radius of a device failure using topology data. Traverses neighbors to identify downstream impact and scores overall blast radius (0-100).
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Max traversal depth (1-3) | |
| device_id | Yes | Device ID to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds meaningful behavioral context beyond those annotations by disclosing the traversal mechanism, the downstream-impact identification, and the 0-100 scoring range. It does not contradict any annotation, though it omits performance/cost implications of deep traversal on large topologies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences totaling about 25 words, with the core purpose front-loaded in the first sentence and the mechanism plus output format in the second. There is zero filler or redundancy, and every clause adds distinguishing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity read-only tool, the description covers purpose, mechanism, and score range, while annotations handle the safety profile and the schema has 100% parameter coverage. A minor gap remains: with no output schema present, the description does not fully clarify whether the returned result includes the identified downstream device set in addition to the score, though 'identifies downstream impact' partially implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both device_id and depth are already documented ('Device ID to analyze' and 'Max traversal depth (1-3)'). The description adds only marginal reinforcement by connecting depth to the traversal behavior and device_id to 'device failure', but no new syntax, format, or edge-case meaning is provided beyond the schema. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Analyze the blast radius of a device failure'), the resource/domain ('using topology data'), and the mechanism ('Traverses neighbors to identify downstream impact'). It also specifies the output ('scores overall blast radius (0-100)'), which further disambiguates it from siblings like get_device_neighbors or get_device_connections that merely list relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual signals about when this tool is appropriate: when assessing failure impact, since it explicitly mentions 'device failure', 'downstream impact', and traversal. However, it does not explicitly name alternatives to avoid (e.g., get_device_neighbors for immediate neighbors only) or state when-not-to-use conditions, stopping just short of fully explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_network_monitoring_coverageARead-onlyIdempotent
Portal audit that counts UPS/PDU devices onboarded, interface DataSources applied, SNMP credentials configured, and NetFlow exporters set up. Returns a prioritized gap list with onboarding recommendations — turns 'you can't detect X' into 'here's how to enable detection of X.'
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | No | Scope the audit to a device group. Omit for portal-wide. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, openWorld, idempotent, non-destructive), and the description aligns with them while adding behavioral context: it counts specific categories and returns recommendations that convert detection gaps into actionable onboarding steps. This output-behavior detail goes beyond what annotations provide, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste: the first front-loads what the tool counts, the second explains its output value proposition. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and satisfies it by stating a prioritized gap list with onboarding recommendations. It covers scope (portal audit), the counted elements, and output format; the only minor omissions are granularity or behavior details of the gap list, which are not critical for a read-only audit with one optional param.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single group_id parameter (scope to a device group, omit for portal-wide). The description adds no new parameter-level meaning beyond confirming it is a portal-scoped audit, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — a portal audit that counts UPS/PDU onboarding, interface DataSources, SNMP credentials, and NetFlow exporters. It enumerates exactly what is measured and what is returned (a prioritized gap list), making it unambiguous and clearly distinct from the large sibling set, none of which perform this coverage assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied but not explicit: an audit that produces onboarding recommendations suggests it is meant for assessing monitoring readiness or gap identification, but the description never states when to use it versus related analysis tools like portal_overview, health_check, or diagnose, nor does it name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_acknowledge_alertsA
Acknowledge multiple alerts at once (max 100, requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional acknowledgment note | |
| alert_ids | Yes | Alert IDs (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only, non-destructive, and non-idempotent. The description adds useful behavioral context by stating the max batch size and explicitly requiring write permission, which is valuable beyond the schema and annotations. It does not detail partial-failure behavior, but credit is earned for the disclosed constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the core action first, followed by the batch limit and permission requirement. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with complete schema coverage and annotations indicating write behavior, the description covers the essential invocation details: what is acted on, batch size, and required permission. It does not explain return values or partial success, but the tool's complexity is low and the existing metadata covers most operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents alert_ids and note adequately. The description's 'max 100' repeats the schema constraint and does not add new parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Acknowledge') on a specific resource ('multiple alerts') and adds a precise scope constraint ('max 100'). It clearly distinguishes itself from the single-alert sibling acknowledge_alert by emphasizing batch operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—acknowledging multiple alerts at once—and provides the 100-alert limit and write-permission requirement. However, it does not explicitly state when to prefer this over acknowledge_alert or mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_create_device_sdtB
Create SDT for multiple devices/resources (max 100, requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | SDT comment | |
| device_ids | Yes | Device IDs (max 100) | |
| duration_minutes | No | Duration (max 7 days) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'requires write permission' and 'max 100', which is useful context. Annotations already indicate non-read-only and non-destructive, so the bar for added value is lower. However, it does not disclose what happens during bulk creation (e.g., partial failure, all-or-nothing, concurrent behavior), which is relevant for a bulk mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. It front-loads the operation ('Create SDT') and then immediately states the key constraint (max 100) and permission requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a bulk write operation with no output schema, the description should explain expected outcomes, such as whether the entire batch succeeds or partially fails, and what response to expect. It does not mention return values, error behavior, or relationship to related SDT operations. This is a notable gap for an agent attempting to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: all three parameters have descriptions. The description's phrase 'multiple devices/resources' maps directly to device_ids, but adds no new semantic detail beyond the schema. Baseline 3 is appropriate since the schema carries the descriptive burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('SDT for multiple devices/resources'), clearly indicating a bulk operation. The term 'resources' adds slight ambiguity, but the parameter name device_ids disambiguates. It does not explicitly distinguish itself from create_sdt, though the 'multiple' scope is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned. It does not state 'use create_sdt for a single device' or 'use this for batches up to 100'. With sibling tools like create_sdt, bulk_delete_sdt, and list_sdts, the agent receives no routing guidance beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_delete_devicesADestructiveIdempotent
Delete multiple devices/resources in one operation (max 100, requires write permission). Soft delete by default.
| Name | Required | Description | Default |
|---|---|---|---|
| device_ids | Yes | Device IDs to delete (max 100) | |
| delete_hard | No | Permanently delete (default: soft delete) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint and readOnlyHint annotations, it adds a concrete permission prerequisite ('requires write permission'), a batch ceiling, and the crucial soft-delete default that tempers what destructiveHint alone would imply. It also lets the agent infer that hard deletion is the opted-in exception via delete_hard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the core purpose and constraints, with no filler or repetition. Every clause adds operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive operation with annotations and full schema coverage, the description covers purpose, permission, limit, and default behavior. It stops just short of explicitly linking soft deletion to recover_device or stating the irreversibility of delete_hard, which would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, and the description largely restates what the schema already says ('max 100', 'soft delete by default'). It does not add new formats or relationships, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action ('Delete'), a bounded resource scope ('multiple devices/resources'), and a single-operation batching guarantee ('max 100'). The bulk scope clearly distinguishes it from the singleton delete_device sibling and from recover_device's opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals batch usage ('multiple devices in one operation') and gives a cardinality ceiling, which is the main selection criterion against delete_device. It does not explicitly name alternatives or state when not to use it, but the bulk qualifier makes the intended context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_delete_sdtADestructiveIdempotent
Delete multiple SDTs at once (max 100, requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| sdt_ids | Yes | SDT IDs (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover destructiveness, read-only status, and idempotency, so the description only needs to add extra behavioral context. It adds the write-permission requirement and confirms batch semantics, which are useful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact, front-loaded sentence that conveys the action, scope, limit, and permission requirement with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter bulk delete tool with rich annotations covering safety and idempotency, this description is sufficient. It provides the core action, a batch limit, and a permission prerequisite, with no output schema requiring return-value explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents sdt_ids as an array of strings with a max of 100, and the description merely repeats the max-100 constraint. No additional format, meaning, or edge-case guidance is provided, so it does not add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a specific resource ('SDTs'), and a clear scope ('multiple at once'). This distinguishes it from the single-item sibling delete_sdt and the device-targeting bulk_delete_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'multiple SDTs at once' clearly signals when this tool should be used, and the 'max 100' cap adds a practical boundary. It does not explicitly name alternatives like delete_sdt for single deletions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_availabilityARead-onlyIdempotent
Calculate availability percentage from alert history. Computes SLA-style uptime metrics, MTTR, and per-device breakdown from cleared and active alerts.
Common mistakes: hours_back defaults to 720 (30 days). Narrow scope with device_id/group_id for performance.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | No | Optional device group ID filter | |
| device_id | No | Optional device ID filter | |
| hours_back | No | Hours to look back (default 30 days) | |
| severity_threshold | No | Minimum severity for downtime (critical, error, warning, info) | error |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the description does not need to repeat that. It adds useful behavioral context by specifying the data source (cleared and active alerts) and warning about performance implications of broad queries. This goes meaningfully beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears in the first sentence, followed by useful operational caveats. Every sentence earns its place, and there is no redundant filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an analytical tool with fully documented optional parameters and read-only annotations, the description provides enough to understand what is computed and how to scope calls efficiently. It does not detail the exact return shape, but it names the key outputs (uptime, MTTR, per-device breakdown), which is sufficient for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented with descriptions and defaults. The description reinforces the hours_back default and the performance value of device_id/group_id filtering, but it does not add substantially new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') and identifies the resource ('availability percentage from alert history') plus the derived outputs (uptime metrics, MTTR, per-device breakdown). It is clear and distinct in function, though it does not explicitly contrast itself with neighboring analytics tools like calculate_error_budget or get_alert_statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives. The 'Common mistakes' note gives parameter-level tips, such as narrowing scope for performance, but it does not state when this tool is appropriate or when another tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_error_budgetARead-onlyIdempotent
Calculate SLO error budget consumption and projected exhaustion date. Computes remaining budget, burn rate, and status (healthy/warning/critical/exhausted) based on actual availability vs target SLO.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | No | Filter to a device group | |
| device_id | No | Filter to a specific device | |
| target_slo | No | Target SLO percentage (default: 99.9) | |
| period_days | No | SLO measurement period in days (default: 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well-covered. The description adds output details (status categories) but no additional behavioral caveats like permission needs or data-scoping behavior, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundancy. The primary action is front-loaded in the first sentence, and the second sentence adds essential detail in a compact list. The structure is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the computation and output categories, but it does not clarify the scope when no filters are provided (e.g., does it calculate for the entire environment?) or how group_id and device_id interact. With no required parameters and no output schema, these gaps leave some ambiguity, though annotations cover the safety aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (group_id, device_id, target_slo, period_days) having a clear description. The tool description does not add extra meaning beyond the schema, such as filter precedence or behavior when no parameters are supplied, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') and resource ('SLO error budget consumption and projected exhaustion date'), and lists concrete outputs (remaining budget, burn rate, status). This clearly distinguishes it from siblings like calculate_availability, which focuses on raw availability rather than error budget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description does not mention sibling tools, prerequisites, or exclusions; usage is only implied by the name and description, which is not enough given the large set of similar analytic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capacity_planARead-onlyIdempotent
Composite capacity planning: forecasts metric breach dates, classifies trends, detects seasonality and change points. Returns per-datasource capacity projections.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | Device ID | |
| summarize | No | Append plain-English NL summary via IBM Granite (requires WATSONX_API_KEY) | |
| datasource | No | Filter to a specific datasource name | |
| hours_back | No | Hours of historical data (default: 168 = 1 week) | |
| device_name | No | Device display name (used if device_id not provided) | |
| detail_level | No | Output detail level (default: summary) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the tool combines multiple analytical steps (forecasting, classification, seasonality, change points) and returns per-datasource projections. This is useful context but does not go into detailed behavior such as data requirements or how the composite steps interact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler. The first sentence enumerates the tool's analytical capabilities, and the second tells the agent what output to expect. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent analytics tool with 100% schema parameter coverage, the description is mostly sufficient. It states what the tool does and what it returns, but it does not mention how parameters like hours_back or detail_level shape the composite analysis, nor does it advise on when the composite is preferable to individual sibling tools. Still, given annotations and full schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all six parameters have individual descriptions. The tool description itself doesn't add any parameter-level semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource relationship: 'Composite capacity planning' that forecasts breach dates, classifies trends, and detects seasonality/change points. It differentiates itself from sibling tools like forecast_metric or detect_seasonality by explicitly positioning itself as a composite, overarching planning operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The term 'composite' implies this is the all-in-one alternative to individual analysis tools like forecast_metric, classify_trend, detect_seasonality, and detect_change_points. However, it never explicitly says when to choose this tool over those siblings, nor does it state any exclusions or prerequisites. Usage context is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_trendBRead-onlyIdempotent
Classify metric trends as stable, increasing, decreasing, cyclic, or volatile. Uses linear regression slope, coefficient of variation, and autocorrelation.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of data to analyze | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds the statistical methods used (linear regression slope, coefficient of variation, autocorrelation), but does not disclose return shape, handling of multiple datapoints, or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. It front-loads the action and output categories, then gives the relevant methodology in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is well annotated as read-only and has fully documented parameters, but there is no output schema and the description does not clarify whether the result is a single classification or a per-datapoint mapping. Since datapoints can be omitted to include all, this is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds no parameter-specific detail beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Classify metric trends') and explicitly lists the five output categories, making the tool's purpose clear. It doesn't explicitly differentiate this from sibling analytics tools like detect_change_points or forecast_metric, but the core operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_device_data, detect_seasonality, or detect_change_points. The description mentions methodology but provides no context, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_session_contextAIdempotent
Clear all session context (last results, variables, and history)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds specificity by enumerating what is cleared (last results, variables, history), which is useful context beyond the annotations. It does not contradict annotations and offers reasonable transparency for a simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the tool's purpose and scope, making it ideal for quick scanning by an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description covers everything needed: it states the action and the affected context. There are no missing details about arguments, return values, or side effects that would impede correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter details. The baseline is 4 for no-parameter tools, and the description does not need to explain parameters. It correctly implies no arguments are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Clear') and resource ('all session context'), and explicitly lists what is cleared (last results, variables, history). This clearly distinguishes it from siblings like get_session_context, delete_session_variable, and list_session_history, which operate on subsets or retrieve data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that delete_session_variable clears a single variable or that get_session_context retrieves context. An agent must infer usage from the name alone, which is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collect_device_configB
Trigger an on-demand config collection for a device instance
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID for the ConfigSource |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, non-idempotent, and non-destructive behavior, and the description aligns with those by framing the call as a trigger. It adds the target and on-demand nature, but does not disclose whether collection is asynchronous, how long it takes, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The action verb is front-loaded and every word contributes to conveying the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should state what the invocation returns or whether the collection runs asynchronously and requires polling. It also omits any post-condition, leaving an agent unable to verify whether the triggered collection succeeded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents all three parameters, including the clarifying 'Device-DataSource ID for the ConfigSource' description. The tool description adds no parameter-level detail, but the high schema coverage means it does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action verb ('Trigger') and identifies the resource ('on-demand config collection') and target ('device instance'). This distinguishes it from sibling retrieval operations like get_device_config and get_configsource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to call this tool versus related siblings such as get_device_config, get_configsource, or create_configsource. No alternatives, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_to_baselineARead-onlyIdempotent
Compare current metrics against a stored baseline. Reports deviation percentage and status (normal, elevated, reduced, anomalous) per datapoint.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | Override device ID (uses baseline if omitted) | |
| hours_back | No | Hours of recent data to compare | |
| instance_id | No | Override instance ID | |
| baseline_name | Yes | Name of the stored baseline | |
| device_datasource_id | No | Override device-datasource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict these. It adds useful output semantics (deviation percentages and statuses) but does not disclose potential failure behavior, such as what happens if the named baseline does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and followed by the output contract. Every word earns its place, with no repetition of schema details or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description correctly provides the essential return information (deviation percentage and status values per datapoint). It omits details like default hours_back and baseline fallback behavior, but these are already covered by the schema, so the combination is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in the input schema. The description only summarizes the overall operation and does not add parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Compare'), a resource ('current metrics against a stored baseline'), and the output contract ('deviation percentage and status ... per datapoint'). This clearly distinguishes it from related siblings like save_baseline or get_metric_anomalies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when current metrics need to be checked against a saved baseline. However, it does not explicitly state when not to use it or name alternatives, so an agent is left to infer routing decisions from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlate_alertsARead-onlyIdempotent
Correlate alerts by device, datasource, and temporal proximity. Groups alerts into clusters to identify related issues.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max alerts to fetch (default: 500) | |
| device | No | Filter by device name (substring match) | |
| group_id | No | Filter by device group ID | |
| severity | No | Filter by severity (critical, error, warning, info) | |
| hours_back | No | Hours to look back (default: 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description only needed to add behavioral context. It does so by disclosing that the tool groups alerts into clusters using device, datasource, and temporal proximity—key behavior an agent cannot infer from annotations alone. It does not mention output shape or algorithmic caveats, but the core analytic behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous content. The action and grouping criteria are front-loaded in the first sentence, and the purpose is stated clearly in the second. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what a returned 'cluster' looks like, but it does not specify the response structure (e.g., cluster IDs, nested alert lists, ordering). However, the parameters are fully documented and the annotations confirm safety and idempotency, covering much of the operational context. The tool is adequately usable, but the missing output details are a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3—each parameter (limit, device, group_id, severity, hours_back) already has a complete description with defaults. The description adds a mapping to two concepts (device and temporal proximity) but also mentions 'datasource,' which has no corresponding parameter in the schema; this is a minor ambiguity. Overall the description neither significantly enhances nor undermines the schema's parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('correlate'), a clear resource ('alerts'), and the grouping dimensions (device, datasource, temporal proximity). It clearly distinguishes the tool from raw retrieval siblings like get_alerts and from more specific analysis tools like detect_alert_burst. The second sentence reinforces the purpose by naming the output concept (clusters to identify related issues).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it—when you want alerts grouped into related clusters rather than a flat list—but it does not explicitly name alternatives or state when not to use it. Given the large sibling set including get_alerts, get_alert_details, and detect_alert_burst, explicit routing guidance would have been valuable. The intended use case is reasonably inferable but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlate_changesARead-onlyIdempotent
Cross-reference alert spikes with audit/change logs. Identifies changes that may have triggered alert increases using configurable correlation windows.
| Name | Required | Description | Default |
|---|---|---|---|
| hours_back | No | Hours to look back | |
| correlation_window_minutes | No | Minutes after a change to look for alert spikes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context: it explains what the tool does with alert and change data and introduces the 'configurable correlation windows' behavior. This goes beyond simply repeating annotation values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action and output are front-loaded, followed by the key parameter behavior. Every sentence contributes meaning, and there is zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two optional parameters, both documented, and annotations cover the read-only/idempotent nature. The description explains the analytical purpose sufficiently for an agent to invoke it. A missing output schema is a minor gap, but for this simple two-parameter tool the description is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, and the schema already explains their meaning and defaults. The description only mentions 'configurable correlation windows' without adding detail beyond what the schema provides. Hence it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('cross-reference') and names the resources ('alert spikes with audit/change logs') and the output ('identifies changes that may have triggered alert increases'). It clearly distinguishes this tool from similar siblings like correlate_alerts and correlate_metrics, which focus on other correlation targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when investigating whether changes triggered alert spikes) but does not explicitly state when not to use it or mention alternative tools. Given a large sibling list with several correlation/analysis tools, more explicit guidance would improve clarity, but the purpose is reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlate_metricsARead-onlyIdempotent
Compute Pearson correlation between multiple metric series. Builds an NxN correlation matrix and highlights strong correlations (|r| > 0.7). Maximum 10 sources.
| Name | Required | Description | Default |
|---|---|---|---|
| sources | Yes | List of metric sources to correlate | |
| hours_back | No | Hours of data to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral detail beyond that: the algorithm (Pearson), the output shape (NxN matrix), the highlight threshold (|r| > 0.7), and the source limit. It does not cover edge-case handling or hours_back behavior, but it provides solid context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: purpose, output, threshold, and limit are all communicated directly. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately explains the return value as an NxN correlation matrix with highlighted strong correlations. The input schema documents the parameters, and the description covers the key behavioral constraints. Minor gaps remain around exact handling of the hours_back parameter and the semantics of the nested source identifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is complete for both parameters, so the baseline is 3. The description adds value by stating 'Maximum 10 sources', a constraint not present in the schema, and by framing the sources as 'metric series'. It does not elaborate on nested fields like device_id or instance_id, but those are reasonably clear from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Compute', the resource ('multiple metric series'), and the exact output ('NxN correlation matrix', '|r| > 0.7'). It is easily distinguishable from siblings like correlate_alerts because it focuses specifically on metric-series correlation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use case explicit: correlating multiple metric series, and adds a practical constraint ('Maximum 10 sources'). It does not explicitly name alternatives or exclusion conditions, but the metric-series framing provides clear context versus alert-focused or anomaly-focused siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_action_chainA
Create an action chain from ordered diagnostic/remediation stages (requires write permission). Each stage references a DiagnosticSource or RemediationSource by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Chain name | |
| stages | Yes | Ordered stage list | |
| description | No | Chain description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a write operation (readOnlyHint=false) and not idempotent. The description adds useful context by explicitly requiring write permission and specifying that stages must reference existing DiagnosticSource or RemediationSource IDs. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded, and the second sentence clarifies the key requirement about stage references.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover parameters and side-effect profile well. However, with no output schema, the description does not mention what the tool returns (e.g., the new chain ID) or any validation behavior, which leaves a small but relevant gap for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that stages are ordered and reference sources by ID, but this information is already present in the schema's property descriptions, so it adds little beyond what is structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create an action chain') and a specific resource ('action chain'), then clarifies the composition ('from ordered diagnostic/remediation stages'). This clearly distinguishes it from sibling tools like create_diagnosticsource or update_action_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: creating a new action chain from existing diagnostic/remediation sources. It also notes a write-permission prerequisite, but it does not explicitly say when to prefer this over update_action_chain or other related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_action_ruleA
Create an action rule binding an action chain to alert conditions (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Rule name | |
| level | Yes | Alert severity to match (e.g. Error, Critical) | |
| devices | No | Device display names (["*"] for all) | |
| enabled | No | Whether the rule starts enabled | |
| instance | No | Instance matcher | |
| datapoint | No | Datapoint matcher | |
| datasource | No | Datasource name matcher | |
| device_groups | Yes | Device group full paths (["*"] for all) | |
| action_chain_id | Yes | Action chain to trigger | |
| resource_properties | No | Property matchers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false), but the description adds the useful prerequisite of requiring write permission. It does not describe side effects, return values, or failure behavior, but given annotation coverage, the added auth context earns credit without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the action and resource, then adds the key permission requirement. Every part earns its place with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters and no output schema, yet the description is quite brief. The full schema coverage mitigates missing parameter-level detail, but the description omits guidance on alternatives, side effects, or expected behavior after creation, so it is adequate but not fully complete for such a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description adds high-level semantic context by saying the rule binds an action chain to alert conditions, which maps conceptually to action_chain_id and the various matcher fields, but it does not add detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('action rule'), and explains the core purpose: binding an action chain to alert conditions. This clearly distinguishes it from sibling operations like update_action_rule, delete_action_rule, set_action_rule_status, and the get_action_rule family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'Create' implies this should be used when a new action rule is needed rather than updating or deleting an existing one, but the description gives no explicit when-to-use or when-not-to-use guidance. It also does not mention alternatives such as set_action_rule_status for enabling/disabling, leaving the routing partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_alert_ruleA
Create an alert rule in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the alert rule | |
| devices | No | List of device patterns to match | |
| instance | No | Instance pattern to match | |
| priority | Yes | Priority level (lower = higher priority) | |
| datapoint | No | DataPoint pattern to match | |
| level_str | No | Alert level filter | |
| datasource | No | DataSource pattern to match | |
| device_groups | No | List of device group patterns to match | |
| escalation_chain_id | Yes | Escalation chain ID for the rule | |
| suppress_alert_clear | No | Suppress alert clear notifications | |
| suppress_alert_ack_sdt | No | Suppress ack/SDT notifications |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only, not idempotent, and not destructive. The description adds the useful operational context that write permission is required, which goes beyond the annotations and helps the agent understand authorization needs. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence, front-loading the core operation and system, and includes the write-permission caveat without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no output schema, the description provides only the minimal 'create alert rule' framingable and a permission note. It does not cover behaviors like idempotency or return values, but the fully documented schema and annotations partially compensate, making this a minimum-viable definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the individual parameter meanings are fully documented. The description adds no extra parameter guidance, but the baseline of 3 applies because the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Create'), the resource ('alert rule'), and the system ('LogicMonitor'), clearly distinguishing it from siblings like update_alert_rule and delete_alert_rule. An agent can immediately understand the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating a new alert rule, and it adds the prerequisite that write permission is required. However, it does not explicitly state when to use this tool versus alternatives such as update_alert_rule or delete_alert_rule, leaving the routing to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collector_groupA
Create a collector group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Group name | |
| description | No | Description | |
| auto_balance | No | Enable auto-balancing | |
| custom_properties | No | Custom properties as key-value pairs | |
| auto_balance_strategy | No | Auto-balance strategy (e.g., roundRobin) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false). The description adds the permission requirement, which is useful context beyond the annotations. However, it does not disclose other behaviors like idempotency (idempotentHint=false), what happens on duplicate names, or whether it overwrites. Given annotations cover the safety profile, the description adds minimal but non-zero value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is immediately clear and front-loaded with the core purpose. No fluff or redundant information. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with only one required parameter, the description is adequate. However, it does not mention the response format or any side effects (e.g., whether the group is immediately usable). Given no output schema, the description could be more informative about what happens on success. It is minimally complete but lacks details that would help an agent anticipate behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented with names and types. The description adds no additional semantics about parameters, such as constraints or relationships. Baseline 3 is appropriate when the schema fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a collector group' – a specific verb and resource. It distinguishes from sibling get/update/delete_collector_group operations. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives. The mention of 'requires write permission' is a prerequisite, not a usage context. It doesn't clarify, for instance, that this is for creating new groups rather than updating existing ones. No when-not-to-use or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_configsourceA
Create a ConfigSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_configsource output). For LM Exchange format, use import_configsource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing ConfigSource with same name before creating | |
| definition | Yes | Full ConfigSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation profile is covered. The description adds the write-permission requirement ('requires write permission') and the overwrite behavior is documented in the schema. The description itself doesn't add much beyond the permission note, but that permission note is genuinely useful context for an agent deciding whether it can call this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste. The core action and format are front-loaded, the permission requirement is stated, and the sibling routing is given in the final sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with a nested definition object and no output schema, the description covers the essential context: what format the definition must be in, where to get that format (export_configsource), the permission requirement, and the alternative tool for a different format. The overwrite parameter is documented in the schema. The only minor gap is that the description doesn't describe the return value or what happens on success, but for a create operation this is a relatively minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds the key semantic detail that 'definition' must be in REST API format and that this matches export_configsource output, which is valuable. However, it doesn't explain the structure of the nested definition object beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a specific resource ('ConfigSource'), and the exact input format ('full definition dict' in 'REST API format'). It also explicitly distinguishes itself from the sibling import_configsource by naming the alternative format (LM Exchange), so an agent can tell them apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (REST API format, same as export_configsource output) and when not to (for LM Exchange format, use import_configsource). This is a clear when/when-not routing rule that leaves nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dashboardA
Create a dashboard, optionally from template (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Dashboard name | |
| group_id | No | Dashboard group ID | |
| sharable | No | Make dashboard sharable | |
| template | No | Full dashboard definition to clone from (from export_dashboard). Name is overridden, id is stripped. | |
| description | No | Dashboard description | |
| template_path | No | Path to a local JSON file holding the dashboard definition or an export_dashboard envelope; loaded by reference so a large export stays out of context. Ignored if template is set. | |
| widget_tokens | No | Widget token overrides (e.g., [{"name": "##host##", "value": "server1"}]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, non-destructive mutation. The description adds a specific authorization need ('write permission') and the optional template behavior, which are useful beyond the annotations. It does not disclose response behavior or idempotency, but the annotation safety profile covers the main risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact, front-loaded sentence with no filler and no repetition of schema content. It states the action, the key option, and the permission condition in roughly ten words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters and no output schema, the schema carries the parameter detail while the description supplies the decision-relevant context: creation, template support, and authorization. It does not describe the return payload or template-cloning side effects, but those are reasonably inferable from the create action and the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema already documents name, group_id, sharable, template, template_path, and widget_tokens. The description adds no parameter-level meaning beyond noting that a template may be used, so it stays at the coverage-based baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific verb and resource: 'Create a dashboard.' This clearly distinguishes it from sibling tools like update_dashboard, delete_dashboard, and get_dashboards, and the optional template behavior adds precision beyond 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the main precondition ('requires write permission') and makes the basic use case clear: creating a new dashboard. However, it never explicitly says when to prefer this over update_dashboard or how templates are produced, so the usage context is implied rather than fully stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dashboard_groupA
Create a dashboard group in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the dashboard group | |
| parent_id | No | Parent group ID (optional) | |
| description | No | Optional description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description states it requires write permission, which is a useful addition beyond annotations. However, it doesn't mention side effects like what happens on creation or potential duplicates. With annotations covering part of the safety profile, the description adds some value but not extensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, brief and front-loaded with the core action. It includes a parenthetical about permissions, which is useful. No wasted words. However, it could arguably be slightly more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema, no nested objects), the description is adequate. It mentions the required permission. The schema covers parameters. The annotations cover safety. It is complete enough for an agent to call correctly. The absence of output schema is not a concern since this is a create operation that likely returns the created object, but that is not specified; still, it's not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (name, parent_id, description) are documented in the schema. The description does not add further meaning beyond 'name' being required. Since schema does the heavy lifting, baseline 3 is appropriate. No additional parameter info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (create) and resource (dashboard group) and the system (LogicMonitor), which is clear. However, it doesn't explicitly distinguish from sibling tools like 'create_dashboard' or 'update_dashboard_group', though the resource type differs. It is clear enough for an agent to understand the primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (requires write permission) which gives some usage context, but it does not explicitly state when to use this over alternatives like creating a dashboard or updating a group. It lacks explicit exclusion or alternative guidance. Implied usage is that it's for creating a group, but no comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_datasourceA
Create a DataSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_datasource output). Use for round-tripping exports or building definitions from scratch. For LM Exchange format, use import_datasource. Script DataSource datapoints require appropriate type values.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing DataSource with same name before creating | |
| definition | Yes | Full DataSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations: readOnlyHint=false, destructiveHint=false, idempotentHint=false. Description adds write permission requirement and notes format compatibility but doesn't elaborate on side effects beyond overwrite parameter. The destructiveHint=false may be contradicted by the overwrite parameter which deletes, but description doesn't explicitly claim no destruction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each with a distinct purpose: what it does, permission, format, usage scenarios, and special case. Front-loaded with verb+resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with one required object param, it's fairly complete. Notes permission, format compatibility, alternative uses, and special type values. Lacks output/return info but no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters (overwrite, definition) at 100%. Description adds meaning by explaining definition must be REST API format and that overwrite deletes existing. The Script datasource type values note adds extra param-related guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (Create) + resource (DataSource) + method (REST API from full definition dict). Distinguishes from import_datasource by format (REST API vs LM Exchange). Mentions round-tripping with export_datasource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says use for round-tripping exports or building from scratch, and directs to import_datasource for LM Exchange format. Also notes Script DataSource datapoints require appropriate type values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_deviceB
Create a new device/resource (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Device hostname or IP address | |
| description | No | Device description | |
| display_name | Yes | Display name | |
| host_group_ids | No | Group IDs | |
| custom_properties | No | Custom properties | |
| preferred_collector_id | Yes | Collector ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the permission requirement, which is useful context, but does not disclose other behaviors such as return values, idempotency, or duplicate handling. This is adequate given the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and permission requirement. It is appropriately short for a simple create tool, though it omits any usage context that could enhance its value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward creation operation with a well-covered schema and no output schema. The description covers the essential permission prerequisite but lacks details about what happens on success (e.g., return value) or edge cases like duplicate names. This is minimal but viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all six parameters, so the schema already documents each parameter. The description adds no additional parameter-level detail, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('Create a new device/resource') that distinguishes it from sibling create tools like create_device_group. The added 'requires write permission' clarifies access needs, though 'device/resource' is slightly ambiguous given the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like update_device, delete_device, or bulk creation. There is no mention of prerequisites beyond permission, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_device_groupB
Create a new device/resource group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Group name | |
| parent_id | No | Parent group ID (1=root) | |
| applies_to | No | AppliesTo expression for dynamic membership | |
| description | No | Group description | |
| custom_properties | No | Custom properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the description does not need to restate mutation. It adds the auth prerequisite 'requires write permission', which is useful context. However, it does not disclose behavioral details such as duplicate-name handling, return values, or hierarchy side effects. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the action and resource front-loaded)Skip any filler. The permission note is appended efficiently. Every word contributes to the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, one required, a nested object, and no output schema, the description is too minimal. It does not explain the structure of custom_properties, the syntax of applies_to, or how parent_id affects hierarchy. An agent would need external knowledge to use the full parameter set correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning about parameters such as applies_to, parent_id, or custom_properties. It relies entirely on the schema's brief field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new device/resource group'. This clearly distinguishes it from sibling tools like update_device_group, delete_device_group, and create_collector_group. The permission note does not obscure the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention that this is for creating device groups as opposed to updating or deleting them, nor does it compare with other group creation tools. Usage is only implied by the verb and resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_diagnosticsourceA
Create a DiagnosticSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_diagnosticsource output). For LM Exchange format, use import_diagnosticsource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing DiagnosticSource with same name before creating | |
| definition | Yes | Full DiagnosticSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=false, covering the mutation profile. The description adds the permission requirement and the REST API format compatibility, but does not disclose side effects of overwrite or return behavior. Since annotations carry the basic safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence front-loads the action and permission; the second provides a format reference and routes to the alternative. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition parameter is a complex nested object, and the description compensates by pointing to export_diagnosticsource output as the exact expected format. It does not mention return values, but given no output schema and the annotations covering mutation, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description's format note mirrors what the definition schema already states ('Full DiagnosticSource definition in REST API format') and adds only a cross-reference to export_diagnosticsource output. This is marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('DiagnosticSource'), and explicitly differentiates from import_diagnosticsource by format (REST API vs LM Exchange). It also clarifies the required input shape ('full definition dict'), making it easy for an agent to identify the correct tool among many create_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit routing rule: use import_diagnosticsource for LM Exchange format. It also notes the prerequisite of write permission, which helps the agent determine feasibility. This is clear, actionable guidance that resolves the primary ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_escalation_chainB
Create an escalation chain (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the escalation chain | |
| description | No | Optional description | |
| destinations | No | List of Chain objects. Each Chain has type ('single' or 'timebased'), optional period object (null for 'single'), and stages (list of stage arrays; each stage is a list of Recipient objects). To route to an LM Integration, use a Recipient with type='admin', addr=<username>, and method=<integration display name>. Lowercase 'admin'. Shorthand {type: 'integration', integration_name: ..., admin: ...} is rewritten to the canonical admin+method form before the request hits the API. | |
| cc_destinations | No | CC Recipient list. Each entry is a Recipient {type, addr, method, contact}. Applied to every stage. | |
| enable_throttling | No | Enable alert throttling | |
| throttling_alerts | No | Number of alerts before throttling | |
| throttling_period | No | Throttling period in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false). The description adds a permission requirement, which is mildly useful, but discloses no side effects, failure modes, or open-world implications beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero redundancy. Every word is informative and the core purpose is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters, including nested destinations with complex structure啵 the description provides no overall guidance on how to construct a valid chain or when this operation is appropriate. The sparse description defers entirely to the schema, which is insufficient for a tool of this complexity without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has descriptive text. The tool description adds no parameter-level meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'create' and resource 'escalation chain', clearly distinguishing it from sibling tools like update_escalation_chain or get_escalation_chains. The action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only mentions a prerequisite ('requires write permission') but gives no guidance on when to use this tool vs alternatives such as update_escalation_chain. No contextual cues, exclusions, or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_eventsourceA
Create an EventSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_eventsource output). For LM Exchange format, use import_eventsource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing EventSource with same name before creating | |
| definition | Yes | Full EventSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false, and the description adds 'requires write permission' plus the format expectation (same as export_eventsource output). This supplements the safety profile without contradicting annotations. It does not disclose the overwrite deletion behavior, but that is covered by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The core action and format are front-loaded, and the alternative is stated concisely. Ideal length for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential creation intent, format, and permission. However, it omits any mention of the response or success behavior (e.g., whether the created EventSource is returned), which is left ambiguous given no output schema. For a creation tool, this is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying that 'definition' must be in REST API format (matching export_eventsource output), which is a semantic detail not in the schema. This helps the agent format the parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create), resource (EventSource), and method (via REST API). Clearly distinguishes from import_eventsource by format, preventing confusion. The phrase 'from a full definition dict' further specifies the input requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative tool (import_eventsource) and the condition that selects it (LM Exchange format). Also mentions the write-permission prerequisite, giving clear when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_http_integrationA
Create a Custom HTTP Delivery integration (type=http). Required fields: name, url. Use extra_fields for OAuth, actionNotes*, updateData*, or the 'extra' UI metadata blob. (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Webhook URL for the active alert lifecycle | |
| name | Yes | Integration display name | |
| ack_url | No | Override URL for ack | |
| headers | No | Headers for active alerts. Accepts a plain {name: value} dict or a list of {HeaderName: value} single-key dicts (LM's native form). | |
| ack_body | No | Override payload for ack | |
| password | No | Basic-auth password | |
| username | No | Basic-auth username | |
| clear_url | No | Override URL for clear | |
| ack_method | No | Override HTTP verb for ack | |
| alert_body | No | Payload template. Supports LM ##TOKEN## substitutions such as ##ALERTID##, ##LEVEL##, ##HOST##. | |
| clear_body | No | ||
| update_url | No | Override URL for update | |
| ack_headers | No | Override headers for ack (same shape as headers). | |
| description | No | Optional description | |
| http_method | No | HTTP verb for active alert posts | post |
| update_body | No | ||
| clear_method | No | ||
| extra_fields | No | Raw LM integration fields merged last. Use for OAuth credentials (oAuthClientId, etc.), updateData*, actionNotes*, and the 'extra' UI metadata string. | |
| clear_headers | No | ||
| update_method | No | ||
| update_headers | No | ||
| alert_data_type | No | LM alert data type, typically 'raw' or 'formatted'. | |
| alert_body_format | No | Payload format (json or form). | json |
| enabled_lifecycles | No | Subset of ['active', 'ack', 'clear', 'update', 'actionNotes', 'updateData']. Defaults to the four core lifecycles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=false and destructiveHint=false, so the description's 'Create' is consistent. The description adds the write-permission requirement and the extra_fields merge behavior, which are useful context. It doesn't address idempotency or failure modes, but with annotations covering the core safety profile, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the action and type. The permission note and extra_fields hint are useful, though the extra_fields detail partially duplicates schema content. There is no wasted wording, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 24-parameter tool with a rich schema, the description covers the essentials: what is created, required fields, special-field routing, and permission. It doesn't describe return values or lifecycle configuration, but the schema already documents most parameters, and this is a straightforward create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the schema carries most parameter documentation. The description reinforces required name/url and summarizes the purpose of extra_fields, but this largely echoes existing schema descriptions for those fields. It adds little new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a specific resource ('Custom HTTP Delivery integration'), and the type discriminator ('type=http'). It also names the required fields, which anchors exactly what the tool does. This clearly distinguishes it from siblings like update_http_integration, get_integration, and delete_integration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear actionable context: this creates a new integration, name and url are required, and extra_fields is the channel for OAuth and lifecycle extras. It also notes the write-permission prerequisite. It doesn't explicitly contrast with update_http_integration or state when not to use it, but the create/update split is clear from the name and the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_logsourceA
Create a LogSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_logsource output). For LM Exchange format, use import_logsource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing LogSource with same name before creating | |
| definition | Yes | Full LogSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (a write operation) and destructiveHint=false (not destructive by default). The description adds context by stating it requires write permission and that it creates a LogSource. It doesn't mention the overwrite behavior (which can delete an existing LogSource) but that is disclosed in the schema. The description does not contradict annotations and adds value with the permission requirement and format context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, then immediately gives format guidance and the alternative tool. There is no filler or repetition; every sentence earns its place. The structure is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no output schema, the description covers the essential aspects: what it does, the input format, the alternative for a different format, and the permission requirement. It doesn't discuss error handling or idempotency, but those are not typically expected in a description and the annotations cover the idempotency hint. The description is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters having descriptions: definition is 'Full LogSource definition in REST API format' and overwrite is 'If true, delete existing LogSource with same name before creating'. The description adds extra semantic value by clarifying that the definition format is the same as export_logsource output, which helps agents know how to construct the definition. This goes beyond the schema's basic description, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create a LogSource via REST API from a full definition dict'. It specifies the exact input format (REST API format) and explicitly contrasts with import_logsource, which accepts LM Exchange format. This clearly distinguishes it from siblings like update_logsource or delete_logsource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it states that this tool accepts REST API format (the same as export_logsource output) and directs the agent to use import_logsource for LM Exchange format. It also notes the write permission requirement, which is a prerequisite. This is a clear when-to-use and when-not-to-use with an explicit alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_propertysourceA
Create a PropertySource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_propertysource output). Use for round-tripping exports or building definitions from scratch. For LM Exchange format, use import_propertysource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing PropertySource with same name before creating | |
| definition | Yes | Full PropertySource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint false) and non-idempotent (idempotentHint false). The description adds value by specifying permission requirements and the accepted format, and notes that overwrite can delete an existing PropertySource (implied by the overwrite parameter in schema). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the core purpose, followed by usage guidance and alternative. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema fully documents parameters and annotations cover basic flags, the description is sufficient for an agent to decide when to use and what format to provide. It lacks explicit mention of return values or error behavior, but these are not critical for a create operation without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters (definition and overwrite) with descriptions, so baseline is 3. The description adds a hint about the definition format ('full definition dict' in REST API format), which slightly enhances understanding but is not essential given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Create' with resource 'PropertySource' and explicit format specification (REST API format). It distinguishes from import_propertysource, which uses LM Exchange format, and references export_propertysource output, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (round-tripping exports or building from scratch) and provides an alternative (import_propertysource for LM Exchange). Also notes the required write permission, guiding the agent on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recipient_groupA
Create a recipient group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the recipient group. Sent as groupName to the LM v3 API. | |
| recipients | No | Optional initial recipients. Each entry is a Recipient {type, method, addr, contact}. ``type`` and ``method`` are required by the LM API. | |
| description | No | Optional description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-read-only and non-idempotent behavior, so the description's added value is the explicit authorization requirement, 'requires write permission'. This is a useful behavioral trait beyond the structured annotations, though the description does not cover potential duplicate-name failures or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence contains the action and a key prerequisite without filler. Every word contributes meaning, and the tool's scope is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, three-parameter create operation with complete schema coverage and safety annotations, the description plus schema provide enough to call the tool correctly. It does not describe return values, and no output schema exists, but none are essential for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented in the input schema. The description itself adds no parameter-level meaning beyond the operation, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the imperative 'Create' with a specific resource, 'recipient group', and is clearly distinguished from sibling update/delete/get tools by the create verb. It states the operation concisely and unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the basic context for using the tool (creating a new recipient group) and adds a permission prerequisite, 'requires write permission', but it never explicitly contrasts with alternatives such as update_recipient_group or delete_recipient_group. Usage guidance is therefore implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_remediationsourceA
Create a RemediationSource via REST API from a full definition dict (requires write permission). Accepts REST API format (same as export_remediationsource output). RemediationSources have no LM Exchange import endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing RemediationSource with same name before creating | |
| definition | Yes | Full RemediationSource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a non-read-only, non-idempotent operation, so the description only needs to add context beyond that. It adds a permission requirement and clarifies that the input format matches export_remediationsource output. The overwrite behavior is left to the schema, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core purpose is front-loaded, and every sentence adds useful context: creation, format compatibility, and the missing import endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with a nested definition object, the description provides enough context to invoke it correctly: permission, input format, and an export reference for constructing the definition. It does not mention return values, but with no output schema and a straightforward create action, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by telling agents that the definition can be sourced directly from export_remediationsource output. This is a practical semantic pointer beyond the schema's 'REST API format' label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a RemediationSource via REST API from a full definition dict.' It clearly identifies the operation and the input style, and it differentiates itself from related tools by noting the export-format compatibility and the absence of an LM Exchange import endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the write-permission prerequisite and explicitly says RemediationSources have no LM Exchange import endpoint, which routes agents away from an import alternative. It does not explicitly contrast with update_remediationsource, but 'create' vs. 'update' is self-evident from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_reportA
Create a new report (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Report name | |
| format | No | Output format | |
| group_id | No | Report group ID | |
| description | No | Report description | |
| report_type | Yes | Report type | |
| schedule_cron | No | Cron expression to schedule generation (omit for on-demand only) | |
| schedule_timezone | No | Schedule timezone (e.g. America/Los_Angeles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and is not idempotent; the description adds a write-permission requirement, which is useful context. It does not disclose side effects, validation behavior, or whether scheduling parameters affect creation, but this is acceptable given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no redundant words. The core purpose is front-loaded, and the permission note is appended without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a moderately complex create operation with seven parameters, including scheduling fields, and no output schema. The schema covers parameter meanings, but the description does not clarify expected return values, report_type value constraints, or how schedule_cron interacts with on-demand generation, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters. The description adds no additional parameter-level meaning beyond what the schema provides, matching the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a new report'. This clearly separates it from sibling tools like get_reports, run_report, update_report_schedule, and delete_report by the creation verb 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as run_report or update_report_schedule. The permission note is useful but does not help an agent choose among related report operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdtA
Create a scheduled downtime (requires write permission)
Common mistakes: duration_minutes is MINUTES not hours/seconds. DeviceSDT needs device_id, DeviceGroupSDT needs device_group_id. DeviceDataSourceSDT needs device_id + datasource_id. Cloud resources (collector_id=-2) may not support DeviceSDT; use DeviceGroupSDT on their parent group instead.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | SDT comment | |
| sdt_type | Yes | SDT type | |
| device_id | No | Device ID (for Device* SDT types) | |
| datasource_id | No | Datasource ID (for DeviceDataSourceSDT) | |
| device_group_id | No | Device group ID (for DeviceGroupSDT) | |
| duration_minutes | No | Duration in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds behavioral value beyond these hints by warning that duration_minutes is minutes not hours/seconds, that specific SDT types require specific IDs, and that cloud resources may not support DeviceSDT. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by a dense, high-value 'Common mistakes' section. Every sentence adds useful information, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool supports 13 sdt_type enum values, but the description only covers three of them (DeviceSDT, DeviceGroupSDT, DeviceDataSourceSDT) plus one cloud caveat. It does not explain how to specify other types such as ServiceSDT, WebsiteSDT, or CollectorSDT, and it omits scheduling semantics like start time. With no output schema, these gaps make the description incomplete for the full range of supported invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying cross-parameter dependencies: DeviceSDT needs device_id, DeviceGroupSDT needs device_group_id, and DeviceDataSourceSDT needs device_id plus datasource_id. It also clarifies the units for duration_minutes, which the schema does not emphasize.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a scheduled downtime'. This clearly identifies the tool's role and distinguishes it from siblings like update_sdt, delete_sdt, and list_sdts. The 'requires write permission' note reinforces the operation type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a useful precondition ('requires write permission') and internal routing guidance, such as using DeviceGroupSDT for cloud resources. However, it does not explicitly say when to choose create_sdt over sibling tools like bulk_create_device_sdt or update_sdt, so the when-to-use guidance is only partially complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_topologysourceA
Create a TopologySource via REST API from a full definition dict (requires write permission). Accepts REST API format. For LM Exchange format, use import_topologysource.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | If true, delete existing TopologySource with same name before creating | |
| definition | Yes | Full TopologySource definition in REST API format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only behavior; the description adds a meaningful authorization requirement ('requires write permission') and a format constraint. It does not describe return values or failure behavior when overwrite is false, but overwrite semantics are covered by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core purpose and format are front-loaded, and the alternative tool is mentioned immediately after the primary use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema covers what is needed to invoke the tool: format, permission, overwrite behavior, and routing to the import alternative. It lacks return/error details, but there is no output schema and the nested definition shape may be documented elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies. The description adds some context by calling definition a 'full definition dict' and noting the REST API format, but it does not explain the nested definition structure or per-parameter behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create'), resource ('TopologySource'), input form ('full definition dict'), and format ('REST API format'). Explicitly distinguishes this from import_topologysource, so an agent can select it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit when-to-use signal: creating a TopologySource in REST API format. Also gives an explicit alternative with the condition for using it: 'For LM Exchange format, use import_topologysource.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_userB
Create a user in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Admin note | |
| Yes | Email address | ||
| phone | No | Phone number | |
| roles | Yes | Role IDs to assign | |
| api_only | No | API-only user (no portal access) | |
| password | No | Initial password | |
| username | Yes | Login username | |
| last_name | Yes | Last name | |
| sms_email | No | SMS email | |
| first_name | Yes | First name | |
| two_fa_enabled | No | Require two-factor auth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, so agents know this is a state-changing call. The description adds one useful detail beyond the annotations: the write-permission requirement. However, it discloses nothing about side effects, such as whether an invitation email is sent, whether username must be unique, or what happens on duplicate creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero wasted words: the core action leads, and the permission requirement is tucked into a short parenthetical. It reads as concise rather than bloated, though it is so minimal it borders on under-specification, which is better penalized under contextual completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 11 parameters and no output schema, this description is thin. It covers the permission prerequisite but omits context an agent needs when calling it: what a successful creation returns, whether api_only changes the password requirement, and whether roles must reference existing role IDs. The annotations cover the safety profile, but the description carries too little of the behavioral load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies - all 11 parameters, including defaults for api_only and two_fa_enabled, are already documented in the schema. The description adds no parameter-level insight beyond the schema, such as how roles map to get_roles or how password interacts with api_only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Create a user in LogicMonitor'. The action is unambiguous and the verb inherently distinguishes it from sibling tools like get_user, update_user, and delete_user, though it never explicitly calls those alternatives out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you need a new user in LogicMonitor. The write-permission parenthetical hints at a prerequisite for calling it, but the description does not state when this is preferred over alternatives like update_user, nor any exclusions or preconditions such as roles needing to exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_websiteA
Create a website check in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the website check | |
| domain | Yes | Domain or host to check | |
| group_id | No | Website group ID | |
| description | No | Optional description | |
| is_internal | No | Whether this is an internal website | |
| website_type | Yes | Type of check | |
| polling_interval | No | Check interval in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not idempotent, and the description adds the useful prerequisite that write permission is required. It does not disclose side effects or response behavior, but with annotations covering the basic safety profile, this is adequate though not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one short sentence with no filler. It front-loads the operation type and includes only the essential permission note. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally viable: it names the operation, platform, and permission requirement, while the schema covers parameter details. It does not mention expected response, relationship to website groups, or any post-create behavior, but for a simple create call with a fully documented schema this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 7 parameters including required fields and defaults. The description adds no parameter-level detail, which is acceptable because the schema carries the full semantic burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a website check') and identifies the platform (LogicMonitor). It distinguishes this from the sibling create_website_group by specifying 'website check' rather than group, so there is no ambiguity about what is being created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when the tool applies: use it to create a website check in LogicMonitor. It does not explicitly name alternatives or exclusions, but the wording is precise enough that an agent can tell it apart from related tools like create_website_group or update_website.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_website_groupA
Create a website group in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the website group | |
| parent_id | No | Parent group ID (optional) | |
| description | No | Optional description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false), so the description's added value is limited to the explicit permission requirement. It does not disclose duplicate handling, response behavior, or side effects beyond creation, but this is acceptable given the simple create operation and existing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the core action and the key prerequisite. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity create tool with a fully documented schema and annotations covering side-effect profile, the description is sufficiently complete. The absence of an output schema is not a gap because none is provided, and the permission requirement is a useful addition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (name, parent_id, description) are already documented in the schema. The description adds no additional parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a precise resource ('website group'), and the system ('LogicMonitor'). This clearly distinguishes it from sibling tools like create_website, get_website_groups, and delete_website_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly communicates when to use the tool (when creating a website group) but provides no explicit guidance on alternatives or exclusions. The permission note ('requires write permission') is a prerequisite but not a usage boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_action_chainADestructiveIdempotent
Delete an action chain (requires write permission). Action rules referencing it stop triggering.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | Action chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveness and lack of read-only behavior, so the description's job is lighter. It adds useful behavioral context beyond the annotations: write permission is required, and dependent action rules will stop triggering. This is meaningful extra transparency and does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each earning its place: the first states the operation and permission, the second states the key side effect. There is no filler, repetition, or boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with no output schema and with destructive/idempotent hints already provided, the description covers the operation, prerequisite, and main consequence. Nothing essential is missing for an agent to decide whether and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for chain_id as 'Action chain ID', so the description need not compensate. The description only implicitly connects chain_id to the chain being deleted, adding no new parameter-level meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete an action chain') and adds the distinctive consequence that action rules referencing it stop triggering. This clearly separates it from create, update, and get action chain siblings, as well as from delete_action_rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context by noting the write permission requirement and the downstream effect on action rules. It does not explicitly name alternatives, but the intent to remove a chain is unambiguous and the consequence helps the agent understand what deletion entails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_action_ruleADestructiveIdempotent
Delete an action rule (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | Action rule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is destructive and not read-only, and the description adds the useful context that write permission is required. However, it does not disclose potential consequences such as permanence, impact on dependent action chains, or what happens after deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler or redundant wording. It front-loads the operation and adds the key permission requirement, earning its place compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation with rich annotations (destructive, idempotent, open-world), the description is nearly complete. It could be improved by stating permanence or return behavior, but the provided permission note and clear action/resource make correct invocation likely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the single parameter rule_id is already documented as 'Action rule ID'. The description adds no further parameter-level information, so it meets the baseline but does not go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the action ('Delete') and the resource ('an action rule'), making it easy to distinguish from sibling CRUD tools like get_action_rule, create_action_rule, and update_action_rule. Even without a title, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case through the verb 'delete' and notes a prerequisite ('requires write permission'), but it does not explicitly state when to prefer this over alternatives such as update_action_rule or how to handle the deleted rule. No when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_alert_ruleADestructiveIdempotent
Delete an alert rule from LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | Alert rule ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, covering the safety profile. The description adds one piece of context the annotations lack — the write-permission requirement — which is genuinely useful, but it contributes nothing else beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence with the core action front-loaded ('Delete an alert rule from LogicMonitor') followed by a concise permission caveat. Every word earns its place; there is zero padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive action with safety-relevant annotations, the essentials are covered: what it does, what it operates on, and the permission needed. The only minor gap is the absence of any hint about response/return or behavior when the rule_id doesn't exist, though idempotentHint partially addresses the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single parameter rule_id is fully described as 'Alert rule ID to delete' in the schema. The tool description adds no parameter-level detail, so the baseline of 3 applies since the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete'), names the exact resource ('alert rule'), and scopes it to a system ('LogicMonitor'). The action verb distinguishes it from sibling tools like get_alert_rule, create_alert_rule, update_alert_rule, and export_alert_rule without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage scenario is implied by the verb — choose this tool when you want to remove an alert rule. The parenthetical 'requires write permission' adds a prerequisite, but there is no explicit when-to-use vs alternatives guidance (e.g., pointing to update_alert_rule for modifications or get_alert_rule for inspection).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_collectorADestructiveIdempotent
Delete a collector (requires write permission). Blocks if devices are still assigned.
| Name | Required | Description | Default |
|---|---|---|---|
| collector_id | Yes | Collector ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds value by specifying that write permission is required and that the operation blocks if devices are assigned—behavior beyond what annotations provide. No contradiction with annotations; the idempotentHint is not contradicted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences with no fluff. The core action is front-loaded, and the critical precondition is stated immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter, the description covers the key behavioral aspect (blocking on assigned devices) and permission requirement. The annotations handle destructiveness and idempotency. No output schema is needed for a typical delete; the description is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter 'collector_id' with a clear description. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate. The parameter is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a collector' with a specific resource. It distinguishes from sibling read tools like get_collector and update_collector by explicitly focusing on deletion, and adds preconditions (write permission) and a blocking condition, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by noting that write permission is required and that the operation blocks if devices are still assigned. This implicitly tells the agent to unassign devices first. It doesn't explicitly say when not to use, but the preconditions are clear enough. Could be improved by naming alternatives, but for a delete operation this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_collector_groupADestructiveIdempotent
Delete a collector group (requires write permission). Blocks if collectors are still assigned.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Collector group ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior, but the description adds value by specifying the write-permission requirement and the blocking condition when collectors are still assigned. This is useful behavioral context beyond the structured metadata, and there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences convey the action, permission requirement, and key blocking behavior. The description is front-loaded and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete operation, the description covers the operation, required permissions, and the main precondition. With no output schema, a delete response is easily inferable, so the definition is sufficiently complete without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents group_id with the description 'Collector group ID to delete,' so schema coverage is 100%. The tool description does not add additional parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Delete a collector group' — and adds a distinguishing behavioral detail about blocking when collectors remain assigned. This clearly separates it from sibling tools like update_collector_group or get_collector_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: write permission is required and the operation refuses/blocks if collectors are still assigned. It does not explicitly name alternatives, but the constraints give an agent actionable guidance about when this tool will succeed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_configsourceADestructiveIdempotent
Delete a ConfigSource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| configsource_id | Yes | ConfigSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations by stating that write permission is required and that existing collected data is retained after deletion. These details help the agent understand side effects and authorization requirements, which is especially useful for a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the operation and resource, then adds the two most important behavioral caveats. Every clause earns its place, with no redundant filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete operation with annotations already covering destructive and idempotent hints, the description is complete. It covers the key context: permission requirement, scope of deletion (definition only), and the retention of collected data. No crucial operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, configsource_id, is fully described in the input schema with 100% coverage. The description does not add additional parameter-level meaning, but it does not need to since the schema already documents the parameter clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') with a precise resource ('ConfigSource definition'), making it clear what the tool does. It also distinguishes itself from sibling delete operations like delete_datasource and delete_eventsource by naming the ConfigSource resource explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context by naming the operation, but it does not explicitly state when to prefer this tool over alternatives such as update_configsource or delete_datasource. The added note about retained collected data provides some decision-relevant context, but there is no explicit when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dashboardADestructiveIdempotent
Delete a dashboard (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_id | Yes | Dashboard ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds a permission requirement, which is useful context, but it does not disclose additional consequences such as permanence or cascading effects on widgets; given the annotation coverage, the added value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, terse sentence that states the core action and a permission caveat with no filler. It earns its place and is front-loaded with the primary behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with full schema coverage and annotations covering idempotency and destructiveness, this description is sufficient for an agent to invoke it correctly. No output schema exists, and the operation is simple enough that additional return-value documentation is unnecessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents dashboard_id with a clear description, so the schema carries the parameter semantics. The description adds no further parameter detail, but no additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action ('Delete') and resource ('a dashboard'), making the tool's function unambiguous. It does not explicitly contrast with sibling tools like get_dashboard or update_dashboard, but the verb itself sufficiently distinguishes it from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides one relevant prerequisite ('requires write permission'), which helps an agent determine whether the call is permissible. However, it does not explicitly state when to prefer this tool over alternatives or what to do when the prerequisite is not met; the usage context is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dashboard_groupBDestructiveIdempotent
Delete a dashboard group from LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Dashboard group ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, non-read-only, and idempotent. The description adds the practical context that write permission is required, which is useful. It does not mention irreversible effects, but destructiveHint already communicates that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that immediately states the action and includes the key permission caveat. There is no wasted text or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter deletion tool with annotations covering safety, the description plus schema is nearly complete. It names the permission requirement, and the absence of an output schema is not a major gap for a straightforward delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with group_id described as 'Dashboard group ID to delete'. The tool description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a resource ('dashboard group'), and the system ('LogicMonitor'). This is clear and unambiguous, though it does not explicitly differentiate itself from related deletion tools like delete_dashboard, which would push it to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It only notes a permission requirement, not the circumstances under which an agent should select this delete operation over other delete or dashboard-group tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_datasourceADestructiveIdempotent
Delete a DataSource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| datasource_id | Yes | DataSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavioral context beyond the annotations: the permission requirement and the fact that existing collected data is retained. This complements the destructiveHint and idempotentHint annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded, and the permission and data-retention details each earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive action, the description covers the essential call-time knowledge: what is deleted, what is retained, and what permission is required. Annotations cover the destructive and idempotent behavior, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with a clear description for datasource_id, so the description adds no new parameter-level meaning. A baseline score of 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('DataSource definition'), making the scope clear: the definition, not the collected data. This distinguishes it well from sibling tools like create_datasource, update_datasource, and export_datasource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a useful prerequisite ('requires write permission') and implies that data is safe to keep, but does not explicitly say when to choose this tool over alternatives or when not to delete. The usage context is clear but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_deviceADestructiveIdempotent
Delete a device/resource (requires write permission). Soft delete by default.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID to delete | |
| delete_hard | No | Permanently delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the operation as destructive and not read-only. The description adds meaningful behavioral context by requiring write permission and clarifying that deletion is soft by default, which is important for an agent deciding whether to proceed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the core action, a permission prerequisite, and the default deletion behavior efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with well-covered parameters and destructive annotations, this is largely complete. It could be improved by mentioning recovery options or consequences for associated resources, but nothing essential is missing for choosing and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents both parameters, including the default for delete_hard. The description adds the 'soft delete' framing, reinforcing the delete_hard behavior, but does not materially expand on what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific action 'Delete a device/resource' and the key default behavior 'Soft delete by default.' It is clear about the resource and operation, though it does not explicitly differentiate from siblings like delete_device_instance or bulk_delete_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a device needs to be deleted, and the soft-delete default provides some context. However, it gives no guidance on when to choose this tool over alternatives such as bulk_delete_devices or recover_device.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_device_groupBDestructiveIdempotent
Delete a device/resource group (requires write permission). Shows impact.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group ID to delete | |
| delete_hard | No | Permanently delete | |
| delete_children | No | Delete child devices/groups |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the destructive nature is covered. The description adds a write-permission requirement and a vague 'Shows impact' claim, but it does not disclose cascading behavior, soft-delete semantics, or permanent deletion implications beyond what the schema parameters imply. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the primary action, which is efficient. However, 'Shows impact' is ambiguous and does not clearly earn its place; it could mislead the agent about what output or behavior to expect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with three parameters, no output schema, and no clarification of hard-delete versus soft-delete or child cascading, the description is incomplete. An agent cannot determine the consequences of deletion, the meaning of delete_hard, or what 'shows impact' actually entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds little beyond the structured data; 'Shows impact' may hint at consequences but does not meaningfully clarify delete_hard or delete_children semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Delete a device/resource group'), making the core operation clear. It doesn't explicitly differentiate from sibling delete tools like delete_collector_group or delete_recipient_group, but the resource type is specific enough for an agent to distinguish it from delete_device or bulk_delete_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('requires write permission') but provides no guidance on when to use this tool versus alternatives. There is no indication of when soft vs hard deletion is appropriate, when delete_children should be used, or how this differs from deleting individual devices or collector groups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_device_instanceADestructiveIdempotent
Delete a monitored instance from a datasource on a device (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| instance_id | Yes | Instance ID to delete | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the description does not need to restate those. It adds value by specifying the authorization requirement ('requires write permission'), which is concrete behavioral context not captured in the annotations. It does not contradict the annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence contains the action, the object, and the key precondition with no wasted words. Everything included is relevant and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with three required parameters, complete schema descriptions, and annotations covering destructive and safety traits, the description is reasonably complete. It covers authorization and the object of deletion; no output schema exists, so return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has a clear, if terse, description. The tool description does not add meaning beyond what the schema already provides; the resource phrase maps cleanly to the three identifiers but adds no syntax, relationships, or formatting details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and a precise resource ('a monitored instance from a datasource on a device'), which clearly distinguishes this from sibling tools like add_device_instance, update_device_instance, get_device_instances, delete_device, and delete_datasource. The parenthetical about write permission also reinforces the nature of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use via the word 'Delete' and adds the prerequisite 'requires write permission', but it never explicitly states when to use this tool versus alternatives like delete_datasource or delete_device. There are no exclusions or routing hints that would help an agent choose between related delete operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_diagnosticsourceADestructiveIdempotent
Delete a DiagnosticSource definition (requires write permission). Action chains referencing it lose that stage.
| Name | Required | Description | Default |
|---|---|---|---|
| diagnosticsource_id | Yes | DiagnosticSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructive, non-read-only behavior)Skipicaciones. The description adds value beyond annotations by exposing the permission requirement and a specific side effect (what happens to action chains), which is behavioral context not captured in the structured metadata. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry complete information with zero filler. The primary action is front-loaded, with permission and consequence following economically. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool with strong annotations (destructive, idempotent) and no output schema, the description covers the essential behavior, permission, and cascading impact on action chains. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter (diagnosticsource_id) is succinctly described in both schema and description ('DiagnosticSource ID to delete'). The description adds no extra semantic nuance beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and a resource ('DiagnosticSource definition') with a clear action and scope. It also names a concrete consequence (losing action chain stages), which fully distinguishes it from sibling get/create/update_diagnosticsource tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a clear prerequisite ('requires write permission') and an effect ('Action chains referencing it lose that stage'), providing context for when this tool is appropriate. It does not explicitly contrast with alternatives, but deletion versus create/update is unambiguous from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_escalation_chainADestructiveIdempotent
Delete an escalation chain (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | Escalation chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and readOnlyHint=false, and the description adds the write-permission requirement. It does not disclose whether deletion is permanent, cascading, or what happens to dependent entities, but the annotation coverage lowers the burden on the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, action-first sentence with no filler. 'Delete an escalation chain' is front-loaded and immediately actionable, and the permission note is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter schema and annotations that cover destructiveness and idempotency, the description is nearly complete for invoking the tool. The only gap is the lack of detail about post-deletion effects on associated objects, which is minor for a straightforward delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter, chain_id, as 'Escalation chain ID' (100% coverage). The tool description adds no additional parameter-level meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'Delete' and the resource 'escalation chain', making the operation immediately clear. It is distinct from sibling operations like create_escalation_chain, update_escalation_chain, get_escalation_chain, and export_escalation_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb: use this tool when an escalation chain should be removed. However, there is no explicit guidance about when not to use it, such as checking whether the chain is referenced by alert rules, or naming alternatives like update_escalation_chain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_eventsourceADestructiveIdempotent
Delete an EventSource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| eventsource_id | Yes | EventSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive behavior (destructiveHint=true) and non-read-only status, so the description adds valuable context by clarifying that only the definition is deleted and that collected data persists. It also explicitly requires write permission, which supplements the annotation metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that names the action, the object, the permission requirement, and the retention behavior. Every clause earns its place, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive operation, the description plus annotations are complete: the tool's action, object, permission prerequisite, and data-retention side effect are all covered. No output schema exists, but none is needed for a straightforward delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter, eventsource_id, as 'EventSource ID to delete' (100% coverage). The description does not add much beyond the schema, but this is acceptable because the schema already provides sufficient meaning for a single, self-explanatory parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete') and a precise resource ('EventSource definition'), which clearly distinguishes it from sibling tools like create_eventsource, update_eventsource, and get_eventsources. It also adds a meaningful scope qualifier by noting that collected data is retained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when an EventSource definition should be removed. It provides a prerequisite ('requires write permission') and a key behavioral caveat ('Existing collected data is retained'), but it does not explicitly discuss alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_integrationADestructiveIdempotent
Delete an integration by ID. Works for any integration type (http, slack-2, pagerduty, etc.). (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| integration_id | Yes | Integration ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the description adds value by noting 'requires write permission' – a prerequisite not present in structured metadata. It does not describe post-conditions, but given the annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with a scoped parenthetical; every word earns its place, front-loads the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param destructive operation with annotations covering idempotency/destructiveness, the description supplies purpose, scope, and permission requirement. No output schema exists, but a delete operation's return is not critical. Complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of the single parameter (integration_id with description). The description adds 'by ID' which is already in the parameter name, so no additional semantic is provided. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete'), resource ('integration'), and key identifier ('by ID'). Explicitly covers all integration types, which distinguishes it from more specific integration creation/update tools and other delete_* siblings like delete_device or delete_recipient_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says 'Works for any integration type (http, slack-2, pagerduty, etc.)', which tells the agent when this is the right delete tool. It lacks an explicit alternative recommendation, but the all-types statement is sufficient guidance given no delete_http_integration sibling exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_logsourceADestructiveIdempotent
Delete a LogSource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| logsource_id | Yes | LogSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds 'requires write permission' (auth requirement) and 'Existing collected data is retained' (scope of destruction). This adds concrete behavioral context beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the core action, followed by key constraints. Zero wasted words, and all necessary information is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation with annotations covering safety profile, the description provides the essential context: what is deleted, permission needed, and the crucial side effect (data retention). No output schema is required for a typical delete, so the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter logsource_id is clearly described as 'LogSource ID to delete'. The description adds no additional parameter-level semantics beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Delete') and resource ('LogSource definition'), and the clarification that existing data is retained distinguishes it from other logsource operations like create/update/get. It is clear what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: delete a LogSource definition. It does not explicitly contrast with update_logsource or get_logsource, nor does it state when to choose delete over update (e.g., disable vs remove). No exclusions are given, but the context is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ops_noteADestructiveIdempotent
Delete an ops note (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Ops note ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=falsecars. The description adds the write-permission requirement, which is useful operational context beyond the annotations. It does not explain idempotency outcomes, but the annotations cover that hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The permission note is tucked parenthetically and adds value without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter delete operation, the description plus annotations are sufficient. It could mention behavior for nonexistent notes or confirm response format, but idempotentHint and destructiveHint cover the key expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the note_id parameter is described as 'Ops note ID to delete'. The description adds no further parameter guidance, but none is needed given the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Delete an ops note'. This clearly distinguishes it from sibling tools like add_ops_note, update_ops_note, and get_ops_note, which are all present in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this when you need to delete an ops note. However, it does not explicitly compare against alternatives like update_ops_note or get_ops_note, nor does it state when deletion would be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_propertysourceADestructiveIdempotent
Delete a PropertySource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| propertysource_id | Yes | PropertySource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it destructive and non-read-only, so the description adds value by disclosing the write-permission requirement and the retention of collected data. It does not contradict annotations and enriches the side-effect picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. Every clause earns its place: permission note and data-retention consequence are the only extras.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation with annotations covering destructive and idempotent hints, the description delivers purpose, permission, and retention behavior—sufficient for correct invocation without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes propertysource_id as 'PropertySource ID to delete'. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('PropertySource definition'), and adds the key scoping detail that existing collected data is retained, which clearly distinguishes it from data-deletion operations. It 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use the tool (delete definition but keep data) and notes a prerequisite (write permission), but it does not explicitly mention alternative tools or state when not to use it. This fits 'clear context, no exclusions'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recipient_groupADestructiveIdempotent
Delete a recipient group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Recipient group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds one useful behavioral detail — the write permission requirement — but does not disclose other side effects or consequences of deletion. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action. The parenthetical 'requires write permission' adds relevant context without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation, the schema fully describes group_id, annotations cover idempotency/destructiveness, and the description states the permission requirement. The definition is nearly complete, though a note about cascading effects or permanence would marginally improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with group_id already described as 'Recipient group ID'. The description adds no additional parameter-level semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a recipient group'. This clearly distinguishes the tool from sibling operations like create_recipient_group, update_recipient_group, and get_recipient_group, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the verb 'Delete' and adds a prerequisite ('requires write permission'), but it does not explicitly discuss when to use this tool versus alternatives or provide any when-not scenarios. The usage is clear by context but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_remediationsourceADestructiveIdempotent
Delete a RemediationSource definition (requires write permission). Action chains referencing it lose that stage.
| Name | Required | Description | Default |
|---|---|---|---|
| remediationsource_id | Yes | RemediationSource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and idempotentHint=true, so the safety profile is covered structurally. The description adds genuine value beyond that by disclosing the write-permission requirement and the cascade effect that action chains referencing the definition lose that stage — precisely the 'what gets destroyed' context the rubric credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise clauses that each earn their place: purpose plus permission first, then the collateral-effect warning. No filler, no repetition of schema details, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a flat, single-parameter delete with rich annotations (destructive, idempotent, openWorld, non-readOnly) and full schema coverage, the description covers the remaining essentials: what is removed and what breaks as a result. Nothing an agent needs to decide whether to invoke it and what to expect is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the schema already describes remediationsource_id as 'RemediationSource ID to delete'. The description's use of 'definition' mildly clarifies the object kind but adds no real parameter-level meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('RemediationSource definition'), which inherently separates it from siblings like get_remediationsource, update_remediationsource, and execute_remediation. The parenthetical permission note and the downstream effect on action chains further pin down exactly what object this acts on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose — an agent deletes when it wants the definition gone — but no alternative is named (e.g., update_remediationsource to change it, or get_remediationsources to find candidates). The 'requires write permission' prerequisite gives some decision context, yet there is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_reportBDestructiveIdempotent
Delete a report (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | Report ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds the write-permission requirement, which is useful, but it doesn't disclose whether deletion is permanent, whether it cascades to scheduled reports, or what happens to associated data. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that front-loads the action and includes the permission note. It is concise and free of filler, though it could add a bit more behavioral context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool with annotations covering destructiveness and idempotency, the description is mostly adequate. However, it doesn't mention whether the deletion is permanent or if there are any side effects (e.g., removing scheduled reports), which would be useful for an agent deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter (report_id) is described as 'Report ID to delete'. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Delete') and resource ('a report'), and the permission requirement ('requires write permission') adds useful context. It doesn't explicitly distinguish from sibling delete tools, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the resource and permission, but it doesn't state when to use this tool versus alternatives like delete_dashboard or delete_alert_rule. No explicit exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdtBDestructiveIdempotent
Delete a scheduled downtime (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| sdt_id | Yes | SDT ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description need not repeat those. It adds 'requires write permission,' which is a useful behavioral detail beyond the annotations. However, it does not explain what happens on deletion (e.g., cascading effects, error behavior), leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. The core action is front-loaded, and the permission note is immediately relevant. It is slightly under-specified but efficient for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one fully documented parameter and strong annotations (destructive, idempotent, readOnly), the description is largely adequate. It adds the permission requirement, but omits details like idempotency behavior or consequences of deleting a non-existent SDT. These are minor given the annotation coverage, but the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for sdt_id with the description 'SDT ID to delete.' The tool description adds no extra meaning to the parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (delete) and resource (scheduled downtime), making the primary purpose unambiguous. It does not explicitly differentiate from the sibling bulk_delete_sdt, though the singular phrasing and parameter imply single-item deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as bulk_delete_sdt, update_sdt, or list_sdts. The only additional context is 'requires write permission,' which is a prerequisite, not a usage directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_session_variableAIdempotent
Delete a user-defined session variable
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already reveal the operation is mutating (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds the 'user-defined' scope, which is useful, but it does not disclose effects on session history, behavior when the variable does not exist, or whether deletion also clears related context. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one direct sentence with no filler or repetition. The core action and target resource are front-loaded, making it immediately scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with one well-documented parameter and annotations covering idempotency and mutability. The description and schema together are sufficient to invoke it correctly. A minor gap is the lack of any mention of behavior for nonexistent variables, but idempotency hint partially covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single parameter with 'Variable name to delete,' so schema description coverage is 100%. The description adds no further parameter-level detail beyond 'user-defined,' so it meets the baseline but does not exceed the schema's contribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Delete a user-defined session variable.' It also adds scope with 'user-defined,' which distinguishes it from system-level session state and from sibling tools like set_session_variable, get_session_variable, and clear_session_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool should be used when a user-defined session variable is no longer needed, but it does not explicitly state when to prefer this over clear_session_context or list_session_history, nor does it mention any conditions or exclusions. Usage guidance is present only by inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_topologysourceADestructiveIdempotent
Delete a TopologySource definition (requires write permission). Existing collected data is retained.
| Name | Required | Description | Default |
|---|---|---|---|
| topologysource_id | Yes | TopologySource ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the annotations: it states that write permission is required and that existing collected data is retained. This clarifies what is destroyed (the definition) and what is preserved (collected data), which is valuable context for a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary purpose is front-loaded, followed by the most important behavioral caveats (permission and data retention). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation, the description provides everything needed: what is deleted, the permission required, and the key side-effect distinction that collected data is retained. No output schema is necessary for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single parameter topologysource_id with a clear description, so the schema carries the semantic burden. The description does not add parameter-level detail, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (delete) on a specific resource (TopologySource definition), which clearly distinguishes it from sibling tools like create_topologysource, update_topologysource, and get_topologysource. The object and operation are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a TopologySource definition needs to be removed. It does not explicitly name alternatives or exclusion conditions, but the action and resource are clear enough to guide basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_userADestructiveIdempotent
Delete a user from LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the write-permission requirement, which is useful context beyond the annotations. It doesn't contradict any annotation, and the lack of additional behavioral detail is acceptable given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the tool's purpose and a key requirement, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with comprehensive annotations, the description and schema cover the essential information. It omits details about side effects or recovery, but the destructiveHint already implies permanence, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with the single parameter described as 'User ID to delete'. The description adds no parameter-specific meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('user from LogicMonitor'), clearly distinguishing it from sibling tools like create_user, update_user, and get_users. The action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guideline is 'requires write permission', which is a prerequisite rather than guidance on when to use the tool versus alternatives. It doesn't mention scenarios like deactivating a user via update_user or any exclusions, so the agent must infer usage context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_websiteADestructiveIdempotent
Delete a website check from LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| website_id | Yes | Website ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds a useful authorization requirement ('requires write permission') that goes beyond the structured data. It does not contradict the annotations, though it could mention irreversibility or error behavior in more depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the main action front-loaded and the permission note parenthesized. Every clause carries meaningful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation, the annotations cover destructive and idempotent behavior and the schema fully documents the parameter. The description is mostly sufficient; the only minor gap is not pointing to how to locate the website_id or explicitly excluding website groups from its scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter (website_id) is already described as 'Website ID to delete'. The description adds no extra parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete'), names the exact resource ('website check'), and scopes it to LogicMonitor. It clearly distinguishes from siblings like delete_website_group by specifying 'website check' rather than a group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as delete_website_group, nor are exclusions or prerequisites (beyond the inline write-permission note) stated. The agent must infer usage purely from the verb and resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_website_groupADestructiveIdempotent
Delete a website group from LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known; the description adds the write-permission requirement, which is useful. However, it does not disclose whether deleting the group also deletes contained websites or whether the action is reversible, so behavioral context is only partially enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that states the operation, target, and permission requirement without filler. Every element earns its place and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive operation with annotations covering read-only and destructive hints, the description is largely complete: it names the target, the required permission, and the operation. The only gap is side-effect detail (cascade deletion or reversibility), which is not essential for basic invocation but would help an agent reason about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the only parameter (group_id) with 100% coverage and a clear description ('Group ID to delete'). The tool description adds no parameter-level meaning, so the baseline score of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('website group') plus the system context ('from LogicMonitor'), making the tool's purpose unambiguous. It naturally differentiates from sibling tools like create_website_group and get_website_groups by the delete operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool over alternatives, mention prerequisites beyond write permission, or call out sibling deletion tools (e.g., delete_device_group, delete_recipient_group). An agent has to infer selection from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_widgetADestructiveIdempotent
Delete a widget from a dashboard (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| widget_id | Yes | Widget ID to delete | |
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the destructive nature. The description adds a permission requirement (write permission), which is useful operational context not in annotations. However, it does not disclose consequences like irreversibility or cascading effects, which are partially implied by destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and includes a brief permission note. There is no unnecessary detail, making it efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with two well-described parameters, the description is nearly complete. Annotations cover the destructive and read-only aspects, and the description adds permission context. It does not mention idempotency, but the idempotentHint annotation already signals that. No return format is specified, but that is acceptable given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for both parameters (widget_id and dashboard_id), so schema coverage is 100%. The description does not add any additional meaning beyond what the schema already specifies, so it relies on the schema for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), the resource (widget), and the context (from a dashboard). It is not a tautology and distinguishes the widget deletion from other delete operations by specifying the resource. The permission note adds relevant scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when a widget needs to be removed from a dashboard) but provides no explicit guidance on when not to use it or alternatives like add_widget or update_widget. It mentions the permission requirement, which is a prerequisite but not a comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_alert_burstARead-onlyIdempotent
Sliding-window detector for mass alert events: N alerts from the same DataSource across M+ devices within T seconds. Answers 'did a bunch of stuff break at once?' Used for detecting cascading failures like mass interface-down events during a site outage.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Scope to a device name (substring match) | |
| group_id | No | Scope to a device group | |
| severity | No | Filter by severity | |
| hours_back | No | Lookback window in hours | |
| min_alerts | No | Minimum alerts in the window to qualify as burst | |
| min_devices | No | Minimum distinct devices in the window | |
| window_seconds | No | Sliding window size in seconds | |
| datasource_pattern | No | Substring match on dataSourceName (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by explaining the burst definition and the intended scenario, though it does not state what exact shape the result takes, e.g., boolean vs. list of alerts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences carry the algorithm, the question it answers, and a motivating example with no filler. Important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage, zero required parameters, and strong annotations, the description is nearly sufficient for correct invocation. It is not a 5 because there is no output schema and no explicit statement of the return value or result format, leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning by tying the N/M/T variables to the relevant parameters: min_alerts, min_devices, and window_seconds. It also clarifies that bursts are defined for the same DataSource, which gives the datasource_pattern parameter extra conceptual context beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation: a sliding-window detector for mass alert events, with the N/M/T criteria spelled out. It answers the direct question 'did a bunch of stuff break at once?' and gives a concrete cascading-failure example, making it easy to distinguish from generic alert-fetching siblings like get_alerts or correlate_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states that the tool is for detecting cascading failures and gives a concrete use case like mass interface-down events during a site outage. However, it does not name alternatives or say when not to use it, such as when a broader alert query or a site-outage detector would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_change_pointsBRead-onlyIdempotent
Detect regime shifts in metric data using the CUSUM algorithm. Identifies points where the mean value changes significantly.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of data to analyze | |
| instance_id | Yes | Instance ID | |
| sensitivity | No | Detection sensitivity (lower = more sensitive) | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the algorithm used (CUSUM) and the nature of the output (points where the mean changes significantly), but it does not explain output shape, edge cases, or interpretation details beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core purpose and algorithm are stated up front, and every word contributes to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only, well-schema-documented tool, but it lacks guidance on when to use it versus the many analytics siblings and does not describe the return format. Since there is no output schema, a bit more return-shape context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add parameter-specific meaning beyond the overall algorithm context, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Detect') with a clear resource ('regime shifts in metric data') and names the algorithm (CUSUM). It clearly conveys what the tool does, though it does not explicitly differentiate it from sibling analytics tools like get_metric_anomalies or detect_seasonality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for detecting mean shifts in metric data, but it gives no explicit guidance on when to prefer it over alternative analytics tools. There are no exclusions, prerequisites, or references to sibling functions, which is a notable gap given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_seasonalityARead-onlyIdempotent
Detect periodic patterns in metric data using autocorrelation. Identifies dominant periods (1h, 4h, 12h, 24h, 168h) and peak activity hours.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of data to analyze (default 1 week) | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds behavioral value beyond those annotations by revealing the autocorrelation method and the specific output categories, giving the agent a concrete sense of what the analysis returns. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, front-loaded with the core verb and resource, and the second sentence adds concrete output expectations. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool without an output schema, the description summarizes what an agent can expect (periods and peak hours) while params are fully covered by the schema and annotations cover the safety profile. It could be more explicit about return format or data requirements, but nothing critical blocks a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters (device_id, datapoints, hours_back, instance_id, device_datasource_id). The description does not add parameter-level meaning, which is acceptable at the baseline given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('detect'), a clear resource ('metric data'), and the method ('autocorrelation'). It further specifies concrete outputs (dominant periods such as 1h/24h/168h and peak activity hours), which clearly differentiates it from sibling analytics like forecast_metric or detect_change_points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for periodic-pattern/seasonality analysis rather than general anomaly detection or forecasting. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_site_outageARead-onlyIdempotent
Composite workflow for site outage detection. Chains CollectorDown detection, mass-interface-down burst analysis, UPS on-battery events, and downstream device silence into a single site-outage verdict with confidence score, scope, and affected device list. Designed to catch the class of site-outage that generic AIOps correlation misses. Pass a device group ID representing the site.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Device group ID representing the site. Devices in this group define the analysis scope. | |
| hours_back | No | Context window for power events in hours | |
| detail_level | No | Output detail level | summary |
| window_seconds | No | Burst window size in seconds (default: 300) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds meaningful behavioral context by explaining that this is a multi-step composite workflow that combines several data signals and produces a verdict with confidence score, scope, and affected device list. It does not go into limitations or edge cases, but the added workflow detail is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, beginning with the core identity ('Composite workflow for site outage detection') and then enumerating the composed signals and output fields. The final instruction about the device group ID is practical and directly actionable. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a composite workflow with no output schema, the description adequately explains the output shape (verdict, confidence score, scope, affected device list) and the required input (device group ID). However, it does not clarify what the 'summary' versus 'full' detail_level returns, which would help an agent choose the right setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description reinforces group_id as representing the site and vaguely alludes to power events and burst analysis, but it does not add material semantics beyond the schema, such as how detail_level changes output or how hours_back affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific purpose: it is a composite workflow that chains CollectorDown detection, burst analysis, UPS events, and device silence into a single site-outage verdict. It also distinguishes itself from 'generic AIOps correlation,' which helps an agent recognize this as a specialized, higher-level analysis tool rather than a generic correlation utility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context: use this tool to detect a site outage using a device group ID as the analysis scope. It implies the primary trigger is suspected site-level outages, but it does not explicitly list when not to use it or name alternative sibling tools such as get_power_events or get_collector_health.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnoseARead-onlyIdempotent
Composite diagnosis: given an alert or device, gathers alert details, device context, correlated alerts, recent changes, blast radius, and health score. Returns a diagnosis report with probable root cause and recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | No | Alert ID to diagnose | |
| summarize | No | Append plain-English NL summary via IBM Granite (requires WATSONX_API_KEY) | |
| device_name | No | Device name to diagnose (finds most recent critical alert) | |
| detail_level | No | Output detail level (default: summary) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it is a composite operation that gathers multiple data sources and returns a synthesized report with probable root cause and recommendations. It also discloses that the summarize parameter requires WATSONX_API_KEY, which is a useful environmental dependency. It does not detail failure modes or how the composite steps behave, but the annotations plus the composite description are adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose ('Composite diagnosis') and then lists the gathered components and output. Every clause earns its place; there is no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a composite tool with no output schema, the description does a good job of explaining what the report contains (probable root cause and recommendations). It also covers the key input modes (alert_id vs device_name) and the optional summarize behavior. It does not specify the format of the diagnosis report or how detail_level affects the output, but the schema documents detail_level's enum and default, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds value by clarifying the relationship between alert_id and device_name (device_name 'finds most recent critical alert') and by explaining that summarize appends a plain-English NL summary via IBM Granite. This goes beyond the schema's field-level descriptions and helps an agent choose between the two mutually exclusive input modes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific composite verb ('diagnose') and resource ('alert or device'), and enumerates the exact components gathered (alert details, device context, correlated alerts, recent changes, blast radius, health score) plus the output (diagnosis report with probable root cause and recommendations). This clearly distinguishes it from siblings like get_alert_details, analyze_blast_radius, and score_device_health, which are single-purpose tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a composite diagnosis is needed, given an alert or device. It does not explicitly state when not to use it or name alternatives like get_alert_details or analyze_blast_radius, but the composite nature and the 'given an alert or device' input framing provide clear context. A small gap remains in not explicitly excluding single-purpose tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_diagnosticA
Execute a DiagnosticSource script on a target device. Performs pre-execution checks (collector version, device status, script review) before triggering manual execution. Poll get_diagnostic_remediation_results for status and output. Requires write permission.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | Target device/host ID | |
| alert_id | No | Optional alert ID to associate with execution | |
| diagnostic_source_id | Yes | DiagnosticSource ID to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-readOnly and non-idempotent, and the description adds valuable context: pre-execution checks, manual execution semantics, write permission requirement, and a polling handoff. It doesn't detail what the script may modify, but the annotations plus description give a solid behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler: action, pre-flight behavior, and follow-up polling. Each sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description mitigates this by explicitly pointing to get_diagnostic_remediation_results for status and output, and by noting pre-checks and permission requirements. It doesn't describe failure modes or what happens if pre-checks fail, but the information is otherwise sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter-specific detail beyond what the property descriptions already state; 'target device' and 'DiagnosticSource script' essentially mirror the schema's host_id and diagnostic_source_id descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Execute'), resource ('DiagnosticSource script'), and target ('device'), making the tool's function unambiguous. It also distinguishes this from the sibling execute_remediation by explicitly naming DiagnosticSource rather than remediation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear procedural context: pre-execution checks, manual execution trigger, and polling get_diagnostic_remediation_results for status and output. It does not explicitly name when not to use this tool or compare it with alternatives, but the workflow guidance implies a clear usage path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_remediationA
Execute a RemediationSource script on a target device. Performs pre-execution checks (collector version, device status, script review) before triggering manual execution. Requires write permission.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | Target device/host ID | |
| alert_id | No | Optional alert ID to associate with execution | |
| remediation_source_id | Yes | Remediation source ID to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-idempotent mutation. The description adds useful behavioral context by disclosing the pre-execution checks (collector version, device status, script review) and the write-permission requirement. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded, followed by relevant pre-execution behavior and permission requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter side-effectful action, the description covers purpose, prerequisites, and pre-execution behavior. The main gap is the absence of an output schema and no description of what the caller receives after triggering execution, which is a minor omission given the otherwise clear definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with 100% coverage. The description's references to 'target device' and 'RemediationSource script' align with the parameters but add no additional format, constraint, or value semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Execute') and the resource ('RemediationSource script on a target device'), which separates it from the get/create/update/delete siblings for remediation sources. The execution semantics and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool is for manual execution of a remediation source, includes pre-execution checks, and requires write permission. It does not explicitly name alternatives or exclusions, but the manual-execution framing makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_alert_ruleBRead-onlyIdempotent
Export an alert rule definition
| Name | Required | Description | Default |
|---|---|---|---|
| alert_rule_id | Yes | Alert rule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the fact that it exports a definition—no mention of output format, file handling, or side effects. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the verb and resource. It could arguably include a bit more context, but for its length it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only export tool with full schema coverage and safety annotations, the description is minimally adequate. However, it doesn't clarify what the export returns (e.g., JSON definition, file) or how it differs from get_alert_rule, which could matter for an agent deciding between them. Given the tool's simplicity, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, alert_rule_id, is described as 'Alert rule ID' in the schema. The description adds no additional meaning beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Export an alert rule definition' clearly states the verb (export) and resource (alert rule definition), which distinguishes it from get_alert_rule (which likely retrieves a rule in a different format) and from create/update/delete_alert_rule. It is concise and unambiguous, though it doesn't explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this when you need to export an alert rule definition. However, it doesn't state when to prefer this over get_alert_rule or export_* siblings, nor does it mention any format or destination of the export. The context signals show many export_* siblings, so some guidance on when this is the right choice would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_configsourceARead-onlyIdempotent
Export a ConfigSource definition (REST API format). Output can be used with create_configsource or update_configsource.
| Name | Required | Description | Default |
|---|---|---|---|
| configsource_id | Yes | ConfigSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature. The description adds behavioral value beyond annotations by disclosing the output format and that the result is directly reusable by create/update operations, which is useful for an export tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The main action and format are stated up front, and the compatibility note earns its place by explaining why an agent would use the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only export tool, the description plus annotations and schema are sufficient. It tells the agent what is exported, in what format, and how the result is intended to be used, so an agent can invoke it correctly without further assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter (configsource_id) with 100% coverage. The description does not add parameter-level detail, so the baseline of 3 applies; the schema carries the burden and does so adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Export') and resource ('ConfigSource definition'), and clarifies the output format (REST API format). It distinguishes itself from 'get_configsource' by explaining the exported artifact is intended for reuse with create_configsource or update_configsource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear usage purpose: producing a definition that can be fed into create_configsource or update_configsource. It does not explicitly contrast this with alternatives like get_configsource or other export tools, so it stops short of full when/to-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dashboardBRead-onlyIdempotent
Export a dashboard definition
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds no behavioral context beyond that: no output format, no detail on what the exported definition contains, and no indication of how the result is delivered. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant phrasing. Every word contributes to identifying the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, idempotent tool the definition plus schema are nearly enough to invoke correctly. However, the absence of any statement about the return value/output format (e.g., a JSON definition vs. a file) leaves a small gap, especially since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents dashboard_id as an integer 'Dashboard ID' (100% coverage), so the description adds no parameter meaning. The word 'definition' weakly implies that dashboard_id selects which definition to export, but this is baseline rather than additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('export') and a clear resource ('dashboard definition'), so the tool's basic function is obvious. It is distinguishable from siblings like get_dashboard or update_dashboard by the export/definition framing, but it does not explicitly compare itself to any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose export_dashboard over get_dashboard or get_dashboards, nor any exclusions or prerequisites. 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.
export_datasourceARead-onlyIdempotent
Export a datasource definition (REST API format). Output can be used with create_datasource or update_datasource.
| Name | Required | Description | Default |
|---|---|---|---|
| datasource_id | Yes | Datasource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds that the output is in REST API format, which is a behavioral detail beyond the annotations, and it also implies the export is non-mutating and reusable, consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no fluff. The core purpose is front-loaded, and the usage hint (output usable with create/update) is placed in the second sentence, maintaining a logical flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with one parameter and no output schema, the description fully covers what an agent needs: what it exports, in what format, and how the output can be used. The annotations already provide the safety profile, so no additional behavioral caveats are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for datasource_id, and the description does not add further parameter-level details. Since the schema already documents the parameter adequately, a baseline score of 3 is appropriate—the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (export) and the resource (datasource definition), and specifies the output format (REST API format). It differentiates itself from siblings like get_datasource by emphasizing the export-for-reuse purpose, making it distinct from a simple retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that the output can be used with create_datasource or update_datasource, giving clear context on when to use this tool. However, it does not explicitly state when not to use it (e.g., for just viewing, use get_datasource), but the purpose is clear enough that an agent can infer the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_diagnosticsourceARead-onlyIdempotent
Export a DiagnosticSource definition (REST API format). Output can be used with create_diagnosticsource or update_diagnosticsource.
| Name | Required | Description | Default |
|---|---|---|---|
| diagnosticsource_id | Yes | DiagnosticSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by stating the output format and its purpose as input to create/update tools, but does not describe the response shape or any additional behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the action and format are front-loaded, and the second sentence provides the key consumption detail. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only export tool, the description covers what it does, the output format's purpose, and how the result is consumed. The absence of an output schema is acceptable because the description explicitly states the output is usable with create/update tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter diagnosticsource_id is fully documented in the schema with 100% coverage, and the description adds no parameter-specific details beyond the schema. The baseline of 3 applies because the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Export') and resource ('DiagnosticSource definition'), and specifies the output format ('REST API format'). It differentiates itself from get_diagnosticsource by emphasizing the output is a reusable definition for create/update rather than a plain read, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the output can be used with create_diagnosticsource or update_diagnosticsource, giving the agent a clear downstream use case. It does not mention when not to use this tool or when to prefer get_diagnosticsource, but the intended export-and-recreate workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_escalation_chainBRead-onlyIdempotent
Export an escalation chain definition
| Name | Required | Description | Default |
|---|---|---|---|
| escalation_chain_id | Yes | Escalation chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'export' behavior but doesn't elaborate on what the output format is, whether a file is generated, or any side effects. This is minimal added value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is direct and front-loaded. No filler words, and the purpose is immediately clear. Excellent conciseness for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one simple parameter and annotations cover safety, the description is minimally sufficient. However, it omits what 'export' actually returns (file, JSON, etc.) and doesn't clarify when export is more appropriate than get_escalation_chain. For an export tool, some note about the output behavior would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter described as 'Escalation chain ID', so the schema already documents the parameter. The description adds no additional meaning about the parameter beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'export' and resource 'escalation chain definition', clearly indicating the action. It distinguishes from the sibling 'get_escalation_chain' by implying a file/download-oriented operation, though it doesn't explicitly differentiate the export format from a simple retrieval. The pattern matches other export_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_escalation_chain or export_logsource. The description doesn't state any prerequisites, context, or exclusions. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_eventsourceARead-onlyIdempotent
Export an EventSource definition (REST API format). Output can be used with create_eventsource or update_eventsource.
| Name | Required | Description | Default |
|---|---|---|---|
| eventsource_id | Yes | EventSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds behavioral value beyond that by indicating the output is a REST-API-format definition and directly consumable by create/update. It does not discuss dependency handling or response structure, but the safety profile is already covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary action is front-loaded, and the second sentence explains the downstream purpose of the result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-destructive export with robust annotations, this is nearly complete. The description tells the agent what the output is for and that it is in REST API format. It does not detail the output payload or edge cases, and there is no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully described in the schema as 'EventSource ID', so the description adds no new meaning to eventsource_id. This is the baseline-3 case where the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Export an EventSource definition') and states the serialization format ('REST API format'). It is immediately distinguishable from read-only get_eventsource and from sibling exports for other resources such as export_logsource or export_diagnosticsource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the intended use: produce a reusable definition that can be fed to create_eventsource or update_eventsource. It does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_logsourceARead-onlyIdempotent
Export a LogSource definition (REST API format). Output can be used with create_logsource or update_logsource.
| Name | Required | Description | Default |
|---|---|---|---|
| logsource_id | Yes | LogSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds that output is in REST API format and intended for reuse with create/update, which provides meaningful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with zero waste, front-loading the action and its purpose. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a single-parameter tool with no output schema and annotations covering safety. The description explains the output format and intended use, leaving no gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so logsource_id is fully documented in the schema. The description adds no extra parameter semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Export), resource (LogSource definition), and format (REST API). Distinguishes from other export_* tools by specifying LogSource, and mentions the output's reuse with create/update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to use (to export a LogSource definition) and notes the output's compatibility with create_logsource/update_logsource, which gives context. Does not explicitly state when-not or name alternatives, but the intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_propertysourceARead-onlyIdempotent
Export a PropertySource definition (REST API format). Output can be used with create_propertysource or update_propertysource.
| Name | Required | Description | Default |
|---|---|---|---|
| propertysource_id | Yes | PropertySource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description need not repeat these. However, the description adds valuable context: the output format is a REST API definition suitable for import into create or update tools. This goes beyond the annotations by clarifying how the output is intended to be used, which is not obvious from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence and directly states the purpose and use case. It front-loads the action and resource, then explains the output's value. No fluff, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is sufficient for an agent to call it correctly. It explains the output's format and how to use it, which is key context. The only minor gap is not mentioning that the output is likely JSON or similar, but the phrase 'REST API format' implies that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with propertysource_id already described as 'PropertySource ID'. The description does not add any further detail about the parameter. Therefore, the description adds no extra meaning beyond the schema, but it also doesn't need to, given full coverage. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a PropertySource definition in REST API format. It also specifies that the output can be used with create_propertysource or update_propertysource, which distinguishes it from other export tools and shows its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to export a PropertySource definition for reuse with create or update. It doesn't explicitly mention alternatives or when not to use it, but the context of 'export' vs 'create/update' is clear enough. The sibling list includes get_propertysource and get_propertysources, but the description doesn't distinguish from these; however, the purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_remediationsourceARead-onlyIdempotent
Export a RemediationSource definition (REST API format). Output can be used with create_remediationsource or update_remediationsource.
| Name | Required | Description | Default |
|---|---|---|---|
| remediationsource_id | Yes | RemediationSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds meaningful context beyond annotations — output format (REST API) and compatibility with create/update — but doesn't detail what the exported definition includes or whether dependent resources are bundled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single two-clause sentence with zero filler; the core action and format are front-loaded, and the reuse hint is a second clause that directly supports tool selection. Nothing could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-parameter read tool with full schema coverage and safety carried by annotations, the description is nearly complete: it states the action, the format, and the purpose of the output. Minor gap is not describing the shape/contents of the returned definition, but the create/update compatibility note largely closes that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (remediationsource_id: 'RemediationSource ID'), so the description doesn't need to document the parameter. It adds only marginal value by implying the ID selects which definition gets exported, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Export') and resource ('RemediationSource definition'), with a format qualifier ('REST API format') that separates it from plain get_remediationsource and from sibling exports like export_datasource or export_configsource. The note that output feeds create/update further pins its identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case — producing a definition for reuse — by stating the output can be used with create_remediationsource or update_remediationsource. This gives clear context (backup/cloning/migration) but stops short of an explicit when-not-to-use exclusion versus get_remediationsource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast_metricCRead-onlyIdempotent
Forecast when a metric will breach a threshold using linear regression. Analyzes historical data to predict trend direction and estimated breach time.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | Forecasting method. 'ttm' uses IBM Granite TTM via watsonx.ai (requires WATSONX_API_KEY). 'auto' selects based on data and watsonx availability. | auto |
| device_id | Yes | Device ID | |
| threshold | Yes | Threshold value that constitutes a breach | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of historical data for regression | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds only that it analyzes historical data, but omits important behavioral details such as the external watsonx.ai dependency for the 'ttm' method and the fact that 'auto' selection depends on data and watsonx availability. These behaviors go beyond the annotation hints and should have been disclosed in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose. However, the phrase 'using linear regression' is inaccurate given the multiple methods in the schema, which detracts from precision. Still, it is concise and the two sentences are focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify the return format, but it only vaguely mentions 'trend direction and estimated breach time'. It does not address required parameters, the external dependency implications, or what an agent should expect in the response. The description is insufficiently complete for a tool with 7 parameters and multiple methods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself does not add meaning to any parameters beyond what the schema already provides, so it remains at baseline without additional credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, and outcome: forecast when a metric will breach a threshold, predicting trend direction and breach time. However, it claims 'using linear regression' while the schema supports auto, holt_winters, and ttm methods, making the purpose statement incomplete and slightly misleading. It also does not explicitly distinguish itself from sibling analytics tools like detect_anomalies or classify_trend, though the forecasting intent is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., WATSONX_API_KEY for ttm), exclusions, or context for choosing forecasting over anomaly detection or trend classification. With many sibling analytics tools present, the lack of usage routing is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_access_groupARead-onlyIdempotent
Get details about a specific access group
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Access group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, so the description does not need to repeat safety. It adds only that the response contains 'details', but does not describe response shape, error cases, or authorization needs; with robust annotations this is acceptable but not additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Eight words, front-loaded with the verb and resource, no filler. For a one-parameter getter this is an appropriately minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, a fully documented schema, and strong safety annotations, the tool is easy to invoke correctly. The only gap is that 'details' does not say which access-group fields are returned, and there is no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the only parameter (group_id) with 100% coverage. The description adds nothing beyond 'specific access group', so it stays at the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb and resource: it retrieves a single access group by ID. It is clear, and 'specific' lightly distinguishes it from the plural list operation get_access_groups, though it never names that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific access group' implies the agent should call this when a group_id is already known, rather than to enumerate groups. However, the description gives no explicit when-to-use guidance or alternatives, leaving the primary routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_access_groupsBRead-onlyIdempotent
List access groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and open-world behavior, so the description does not need to restate safety. It adds no further behavioral context such as pagination or default limits, but no contradiction exists and no destructive behavior is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three words and contains no filler or repetition, putting the core operation up front. It is concise but somewhat underspecified; it could have added one phrase about scope without losing that benefit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with one optional, well-documented parameter, the description is sufficient to invoke the tool correctly. Since no output schema is provided, an explicit note about the response shape would strengthen it, but the operation is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit documented as 'Max results' and a default of 50. The tool description adds nothing about the parameter, so it reaches only the baseline expected when the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"List access groups" states a clear, specific action (list) and resource (access groups), so an agent can tell it returns a collection rather than a single entity. It does not explicitly contrast with the singular sibling get_access_group, but the plural wording makes the intended scope fairly evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as get_access_group, nor any prerequisites or filters. The only usage signal is the verb 'list', which is purpose rather than contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_chainARead-onlyIdempotent
Get details about a specific action chain including its stages
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | Action chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds only that the response includes stages; it does not disclose not-found behavior, response shape, or any additional side effects, but for a simple read with these annotations that is a modest gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence with no filler. The verb, target, and key return detail ('stages') are all front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations covering safety and an output that is at least partially described ('including its stages'), the definition is largely complete. It leaves only the explicit relationship to get_action_chains unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and chain_id is already described as 'Action chain ID', so the description adds no parameter semantics beyond referring to the chain as 'specific'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get details') and identifies the exact resource ('a specific action chain') plus a differentiating detail ('including its stages'). This clearly separates it from the sibling list operation get_action_chains and other get_*_chain tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'specific' and the required chain_id parameter imply this is the single-item lookup companion to get_action_chains. However, it never explicitly states when to choose this tool over get_action_chains, nor does it name any alternative or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_chainsARead-onlyIdempotent
List action chains: ordered DiagnosticSource/RemediationSource stages that action rules trigger on alerts (Automated Diagnostics & Remediation)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| offset | No | Results to skip for pagination | |
| name_filter | No | Filter by chain name (substring, client-side) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is fully covered. The description adds useful domain context about the tool's purpose but discloses no additional behavioral traits such as pagination behavior, response size, or performance implications. Thus it adds some value beyond annotations but not substantial behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that front-loads the primary action and resource, and then efficiently defines the core concept. No wasted words; every part of the sentence contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list tool with three optional parameters and no output schema, the description is nearly complete. It explains what the resource is, making the tool's function obvious. A minor gap is lack of explicit return-value description, but the verb 'List' implies a list of items.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (limit, offset, name_filter) already described in the schema. The tool description adds no parameter-specific semantics, so it does not improve upon the baseline set by the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and names the resource 'action chains', then extends clarity by defining exactly what an action chain is: 'ordered DiagnosticSource/RemediationSource stages that action rules trigger on alerts'. This distinguishes it clearly from sibling list tools like get_alerts or get_escalation_chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong context by placing the tool within Automated Diagnostics & Remediation and defining the concept, so an agent understands when it is relevant. However, it does not explicitly mention alternatives or when not to use it, though the singular sibling get_action_chain implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_ruleARead-onlyIdempotent
Get details about a specific action rule
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | Action rule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond 'get details'—it doesn't mention response shape, error conditions, or any side effects. With annotations covering the main traits, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the verb and resource, making it immediately scannable. Nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with full schema coverage and safety annotations, the description is mostly sufficient. However, it doesn't explain what 'details' will be returned, and there is no output schema to fill that gap. An agent might not know what to expect from the response, but the tool's simplicity keeps this from being a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: rule_id is described as 'Action rule ID'. The description adds no additional meaning beyond the schema, so the baseline 3 applies. It doesn't clarify the ID type or source, but the schema already provides the essential meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details about a specific action rule' clearly states the verb (get) and resource (action rule), and the singular 'specific' distinguishes it from the sibling get_action_rules. It is clear but does not elaborate on what 'details' includes, so it doesn't fully differentiate from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call when you need details about one action rule, identified by rule_id. It does not explicitly state when not to use it or mention alternatives like get_action_rules for listing. The context is clear enough for a simple lookup, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_rulesARead-onlyIdempotent
List action rules: alert conditions (severity, device groups, datasource matchers) that trigger action chains
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| offset | No | Results to skip for pagination | |
| name_filter | No | Filter by rule name (substring, client-side) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful semantic context by explaining that action rules are alert conditions that trigger action chains, but it does not disclose pagination behavior, return shape, or filtering nuances beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, then adds a useful parenthetical definition. Every word earns its place; there is no filler or restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only listing tool with 0 required parameters and rich annotations, the description is nearly complete: it names the resource and its domain meaning, and the schema covers parameter details. It falls slightly short of 5 by not signaling paginated response behavior or what fields appear in each listed rule, though openWorldHint and the list-oriented verb make these minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (limit, offset, name_filter) have 100% schema description coverage, so the description need not repeat them. The description's mention of severity, device groups, and datasource matchers suggests the conceptual filter domains but does not add parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a clear resource ('action rules') and defines what those rules are: 'alert conditions (severity, device groups, datasource matchers) that trigger action chains'. This clearly distinguishes it from the singular 'get_action_rule' sibling, which presumably fetches one rule, as well as from alert, escalation, and action-chain tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'List action rules' phrasing implicitly tells an agent this is the tool for enumerating action rules, but there is no explicit guidance on when to choose it over 'get_action_rule' or related rule tools. No alternative or exclusion is mentioned, so usage context is implied 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.
get_active_sdtsBRead-onlyIdempotent
Get currently active SDTs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | No | Filter by device ID | |
| device_group_id | No | Filter by group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds only the 'currently active' scoping constraint, which is arguably part of the purpose. It does not disclose additional behavior such as return format, pagination, or how 'active' is defined, but this is minor given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase with zero wasted words. It front-loads the verb and resource and adds the essential qualifier. For a simple read tool of this nature, this level of conciseness is appropriate and not under-specified to the point of being confusing (unlike a bare 'Process').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three optional, well-documented parameters and safety annotations, the description is mostly adequate. However, it does not explicitly confirm the return type (e.g., a list of SDT objects) or distinguish itself from closely related siblings like list_sdts and get_upcoming_sdts. Given the availability of those siblings, a bit more context would help the agent make the right selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all three parameters (limit, device_id, device_group_id). The description adds no additional information about these parameters or their semantics. Baseline 3 applies because the schema does the heavy lifting and the description does not need to repeat it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get currently active SDTs' has a specific verb ('Get') and resource ('SDTs') with a clear qualifier ('currently active') that distinguishes it from siblings like get_upcoming_sdts and list_sdts. However, it does not explicitly name those alternatives, so an agent must infer the differentiation. Overall, the purpose is clear and not tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus list_sdts or get_upcoming_sdts. There is no mention of alternatives or conditions for selecting this tool. The description simply states what it does, leaving the agent to guess which of the many SDT-related tools is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_detailsBRead-onlyIdempotent
Get detailed information about a specific alert
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | Yes | Alert ID (with or without LMA prefix) | |
| include_message | No | Include the full alert message body (needMessage) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that, such as what 'detailed information' includes, whether additional API calls are triggered, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler words. It is appropriately sized for the simple purpose it conveys, though it is also somewhat thin in content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should clarify what 'detailed information' actually returns, but it does not. It also does not mention how include_message alters the response or when a caller should set it. The description is minimally adequate for a read-only lookup but leaves meaningful ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters at 100% coverage, including the LMA prefix note for alert_id and the needMessage meaning for include_message. The description adds no parameter-level meaning, but the schema already handles this responsibility.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), resource ('alert'), and scope ('specific alert'), making it distinguishable from list-style siblings like get_alerts and mutation siblings like acknowledge_alert. It does not explicitly name a sibling, but the specificity of 'a specific alert' is enough to convey its singular focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need detailed information about one alert. However, the description does not explicitly state when to choose this over get_alerts or other alert-related tools, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_ruleARead-onlyIdempotent
Get details about a specific alert rule
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | Alert rule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context such as response format, error conditions, or authentication requirementscars. It does not contradict the annotations, so a mid-range score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the verb and resource immediately, making it instantly scannable. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-entity getter with one fully documented parameter and comprehensive readOnly annotations, the description is largely sufficient. Minor gaps include lack of output shape details and a possible need to differentiate from the sibling get_alert_details, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single rule_id parameter, including its own description ('Alert rule ID'). The tool description's 'specific alert rule' only weakly reinforces that rule_id is the identifier, adding no meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('alert rule'), and a scope qualifier ('specific'), which unambiguously defines a single-entity fetch. It is easily distinguished from sibling tools like get_alert_rules (plural list) and create/update/delete_alert_rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific alert rule' implies the agent should supply a rule_idaaa and expects a single result, but there is no explicit guidance about when to prefer this over alternatives like get_alert_rules or get_alert_details. No exclusions or 'when not to use' is provided, so usage is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_rulesBRead-onlyIdempotent
List alert rules
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds no additional behavioral context beyond 'List', such as pagination behavior or whether system-level versus user-level rules are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely efficient, using three words to convey the core operation. While there is no wasted text, it lacks any supporting context or structure that could enhance clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with one optional parameter and rich annotations, the description is largely complete enough for correct invocation. The absence of an output schema is not critical here, though mentioning that limit is the only control would be slightly more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for its single parameter (limit, described as 'Max results'). The description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('alert rules'), making the tool's purpose immediately understandable. However, it does not explicitly differentiate itself from the sibling get_alert_rule, relying on pluralization rather than explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus get_alert_rule or other alert-related tools. There is no mention of prerequisites, intended scenarios, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alertsARead-onlyIdempotent
Get alerts from LogicMonitor with optional filtering
For Kubernetes clusters, use group_id (from get_device_groups) instead of device — the device name filter does not work reliably for K8s resources.
Common mistakes: startEpoch/endEpoch use SECONDS not milliseconds. String filter values need double quotes (e.g., monitorObjectName:"hostname").
| Name | Required | Description | Default |
|---|---|---|---|
| acked | No | Filter by acknowledged status | |
| limit | No | Max results (max 1000) | |
| sdted | No | Filter by SDT status | |
| device | No | Filter by device name (substring match) | |
| filter | No | Raw filter expression (overrides other filters). Example: severity:4,cleared:false | |
| offset | No | Pagination offset | |
| status | No | Filter by status | |
| cleared | No | Filter by cleared status | |
| group_id | No | Filter by device group ID (matches all devices) | |
| instance | No | Filter by instance name (substring match) | |
| severity | No | Filter by severity | |
| datapoint | No | Filter by datapoint name (substring match) | |
| device_id | No | Filter by device/resource ID | |
| end_epoch | No | Filter alerts started before this epoch timestamp | |
| datasource | No | Filter by datasource/template name (substring match) | |
| start_epoch | No | Filter alerts started after this epoch timestamp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds valuable behavioral detail beyond annotations: time units ('startEpoch/endEpoch use SECONDS not milliseconds'), quoting requirements for string filter values, and the unreliable device-name filter for Kubernetes. These are meaningful caveats that help an agent avoid failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the most important caveats. Every sentence adds value: the Kubernetes guidance, time-unit warning, and quoting rule all prevent common mistakes. No filler or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter read-only list tool with full schema coverage and rich annotations, the description covers the main operational risks: parameter interpretation, filtering quirks, and K8s behavior. It does not describe the response format, but no output schema exists and 'Get alerts' reasonably implies a list of alerts. The major invocation pitfalls are addressed, making it nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 16 parameters. The description adds genuinely useful semantics beyond the schema: epoch parameters are in seconds not milliseconds, string filter values need double quotes, and for Kubernetes group_id should be used instead of device. This exceeds the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get alerts from LogicMonitor with optional filtering.' This clearly identifies the tool's purpose. However, it does not explicitly differentiate from sibling tools like get_alert_details or get_alert_statistics, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: retrieving alerts with optional filters, plus a specific rule for Kubernetes clusters ('use group_id ... instead of device') and common mistakes to avoid. It does not explicitly state when to prefer this over alternative alert-related tools, but the context is strong enough to guide correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_statisticsARead-onlyIdempotent
Aggregate alert counts by severity, device, datasource, and time bucket. Returns statistical summary over a time window.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max alerts to fetch (default: 1000) | |
| device | No | Filter by device name (substring match) | |
| group_id | No | Filter by device group ID | |
| hours_back | No | Hours to look back (default: 24) | |
| bucket_size_hours | No | Size of each time bucket in hours (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, and non-destructive, so the description's job is lighter. It adds useful behavioral context about grouping and time-window aggregation, but does not disclose return format, whether limits affect aggregation, or how overlapping buckets are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action and grouping dimensions are front-loaded, and every phrase contributes to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aggregation dimensions and relies on the schema for parameter details. However, with no output schema, 'statistical summary' does not fully specify what the response contains, leaving some ambiguity about the exact return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented (limit, device, group_id, hours_back, bucket_size_hours). The description maps conceptually to bucket_size_hours and hours_back but adds no semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Aggregate') and resource ('alert counts'), and names the grouping dimensions (severity, device, datasource, time bucket). It distinguishes itself from raw list tools like get_alerts through the aggregation focus, though 'statistical summary' is somewhat vague about what statistics are produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The aggregation wording implies this tool is for summary counts rather than raw alert listings, but it never explicitly says when to choose it over get_alerts or get_alert_details. No alternatives or exclusions are named, leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_tokenARead-onlyIdempotent
Get details about a specific API token
| Name | Required | Description | Default |
|---|---|---|---|
| token_id | Yes | API token ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no additional behavioral context such as authentication requirements, rate limits, response shape, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the action and the target resource clearly, which is appropriate for a simple one-parameter getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one required parameter and read-only annotations, so an agent can select and invoke it confidently. However, there is no output schema and the description does not specify what fields or level of detail are returned, leaving the agent somewhat under-informed about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents token_id as 'API token ID', so the description is not required to add much. The word 'specific' reinforces that this token is identified by an ID, but the description adds no meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('details about a specific API token'). The word 'specific' distinguishes this from the sibling get_api_tokens, which presumably lists all tokens, making the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for retrieving one token by ID, but it does not explicitly name get_api_tokens as the alternative for listing tokens, nor does it provide when-to-use/when-not-to-use guidance. Usage context is only implied by the word 'specific'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_token_auditBRead-onlyIdempotent
Get API token usage audit logs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| token_id | No | Filter by API token ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no behavioral context beyond the tool name — no mention of result scoping, pagination, date handling, or what the audit logs actually contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant explanation. It is appropriately sized for the tool's simple purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, optional parameters are fully documented in the schema, and annotations cover the read-only behavior. However, the description leaves the relationship to sibling audit tools unclear, and there is no output schema to clarify what the returned audit logs look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both limit and token_id already documented. The description itself adds no parameter meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('API token usage audit logs'), which clearly identifies the tool's function. It also distinguishes this tool from siblings like get_audit_logs, get_login_audit, and get_change_audit by scoping to API token usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many audit-related siblings (get_audit_logs, get_login_audit, get_change_audit). There is no mention of exclusions, alternatives, or the appropriate context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_tokensBRead-onlyIdempotent
List API tokens
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, which cover the safety profile. The description adds no behavioral context beyond the bare action—no mention of what is returned, whether token secrets are included, pagination behavior, or scope (e.g., all tokens vs. current user's). Since it adds nothing beyond the annotations, it fails to disclose any additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase with zero wasted words. It is front-loaded with the verb and resource, and there is no redundant or repetitive content. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter, no output schema) and the annotations plus schema cover the main operational details. However, the description does not differentiate from the singular 'get_api_token' sibling or clarify the scope of the list (e.g., all tokens vs. filtered by user). For a list tool, a bit more context would improve completeness, but the low complexity keeps this from being severely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single parameter 'limit' with 'Max results'. The description does not mention the parameter at all, but the schema already fully documents it, so the description does not need to compensate. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List API tokens' uses a specific verb ('List') and a specific resource ('API tokens'), making the core action clear. However, it does not explicitly differentiate from the sibling tool 'get_api_token' (singular) or 'get_api_token_audit', though the plural vs. singular distinction provides some implicit separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that a user might want a single token via 'get_api_token' or audit logs via 'get_api_token_audit'. No context, exclusions, or alternative conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audit_logsCRead-onlyIdempotent
Get audit logs from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| action | No | Filter by action type | |
| offset | No | Pagination offset | |
| end_time | No | End time in epoch seconds (optional) | |
| username | No | Filter by username | |
| start_time | No | Start time in epoch seconds (optional) | |
| resource_type | No | Filter by resource type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds no behavioral detail beyond that. It does not mention pagination behavior, time-range semantics, filtering implications, or what an audit log entry contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler or repetition. It is front-loaded, though it could carry more useful context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 optional parameters and no output schema, the one-line description is not complete enough. It does not explain the audit log scope, distinguish it from related audit tools, or describe what the returned logs look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents each parameter. The description itself adds no parameter-level meaning, which is acceptable under the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear verb and resource: 'Get audit logs from LogicMonitor'. It is understandable at a high level, but it does not distinguish this tool from closely related siblings such as get_login_audit, get_change_audit, and get_api_token_audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The agent is left to infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_batchjobARead-onlyIdempotent
Get details about a specific batch job
| Name | Required | Description | Default |
|---|---|---|---|
| batchjob_id | Yes | Batch job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds no additional behavioral context beyond the generic read operation, such as return shape or error behavior. With annotations present the bar is lower, but no value is added beyond what the annotations already establish.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler. 'Get details about a specific batch job' is immediately actionable and the core distinction (specific vs. all) is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup with annotations covering read-only/idempotent behavior, the definition is largely complete. The only notable gap is that there is no output schema and the description does not elaborate on what 'details' are returned. This is a minor omission for a straightforward get-by-id tool but prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter batchjob_id is fully documented in the schema with 100% coverage and description 'Batch job ID'. The tool description adds no extra meaning about how the ID is used, what format it expects, or what details are returned. This matches the baseline of 3 when the schema carries the explanatory burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get details about a specific batch job.' The singular 'specific batch job' clearly distinguishes this from sibling tools like get_batchjobs, which list all batch jobs. The required batchjob_id parameter reinforces this single-item scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for one specific batch job, and the name get_batchjob contrasts with get_batchjobs and get_device_batchjobs. However, it does not explicitly state when to choose this over those alternatives, nor does it provide exclusions or prerequisite guidance. Usage context is left to inference from tool naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_batchjobsCRead-onlyIdempotent
List batch jobs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds no behavioral context beyond the verb 'List' – no mention of ordering, pagination, or scope. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise – only three words – which is appropriate for a simple list operation. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves scope ambiguous: it does not state whether this lists all batch jobs globally or within a device context, and the sibling get_device_batchjobs suggests a distinction. Without output schema or additional context, an agent may not be able to reliably choose between the two tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the 'limit' parameter, which is described as 'Max results'. The description adds no extra parameter semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List batch jobs' states a clear verb and resource. It is distinguishable from the singular get_batchjob by plurality, but does not explicitly contrast with get_device_batchjobs, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives like get_batchjob or get_device_batchjobs. The description does not mention any exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_change_auditBRead-onlyIdempotent
Get configuration change audit logs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| change_type | No | Filter by change type | |
| resource_type | No | Filter by resource type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which indicates a safe read operation. The description adds no extra behavioral context such as authentication requirements, date range filtering, or whether the logs are system-wide. It is consistent with annotations but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is front-loaded with the main purpose. It is concise and to the point, though it could benefit from a mention of the filtering parameters to save the agent from opening the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no output schema, the description should have explained what the returned audit log entries look like or how to use the filters, but it does not. However, the parameters are simple and the annotations cover safety, so it is adequate for a simple read operation, though not complete for an agent unfamiliar with the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the three parameters (limit, change_type, resource_type) is already documented with concise descriptions. The overall description does not add any additional semantics beyond the schema, which is exactly the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get'), resource ('configuration change audit logs') and implies a read operation. It differentiates from sibling tools like get_audit_logs, get_api_token_audit, and get_login_audit by specifying 'configuration change' specifically, though it could be more explicit about the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the several other audit-related sibling tools (get_audit_logs, get_api_token_audit, get_login_audit). The description does not state any exclusions or alternatives, leaving the agent to infer based on naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectorARead-onlyIdempotent
Get detailed information about a specific collector
| Name | Required | Description | Default |
|---|---|---|---|
| collector_id | Yes | Collector ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the description's read-only framing is consistent and the safety profile is clear without repetition. The description adds no additional behavioral context, such as what happens for an invalid collector_id or what level of detail is included, but for a simple getter with strong annotations this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant phrasing. It states the action and target resource efficiently, and every word contributes to the meaning, even though 'detailed information' could be more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity, one-parameter read-only getter with rich annotations and no output schema. The description plus the schema provide enough information for an agent to select the tool and invoke it correctly. It would benefit from clarifying what 'detailed information' includes and how it differs from get_collector_health, but it is complete enough for a straightforward fetch-by-ID operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: collector_id is a required integer described as 'Collector ID'. The tool description adds no extra semantic information about the parameter, so the baseline score of 3 applies since the schema already carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb (Get) and resource (a specific collector), and the required collector_id parameter reinforces that this targets one collector rather than the list-style get_collectors sibling. However, 'detailed information' is somewhat vague about what exactly is returned, and it does not explicitly distinguish itself from related getters like get_collector_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a specific collector' implies this tool should be used when the agent has a collector_id and needs details about that single entity, contrasting implicitly with get_collectors. No explicit guidance is given about when to prefer alternatives such as get_collector_health, get_collector_groups, or update_collector, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collector_groupARead-onlyIdempotent
Get details about a specific collector group
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Collector group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description does not need to restate that. It adds only the 'specific' scoping and no additional behavioral context such as error behavior or response contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It communicates the operation and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only getter with strong annotations and no nested objects, this description is sufficient for basic invocation. It does not enumerate returned fields, but 'details' plus the schema and annotations provide enough context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents group_id with 100% coverage, so the baseline of 3 applies. The description does not add any meaning beyond the schema's 'Collector group ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with the resource 'collector group' and 'specific' signals a single-entity lookup by ID. This clearly distinguishes it from get_collector_groups (list all) and get_collector (a collector, not a group).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives such as get_collector_groups or get_collector. The intended usage is only implied by the singular phrasing and the parameter name, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collector_groupsBRead-onlyIdempotent
List collector groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides name_filter). Example: name~prod,autoBalance:true | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral details beyond listing, such as pagination behavior, default ordering, or whether it returns all groups or only accessible ones. With annotations covering the core safety traits, a 3 is appropriate—the description doesn't contradict annotations and adds minimal but non-zero context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple list operation. It could arguably be more informative, but for a straightforward read-only list tool, this level of conciseness is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with full schema coverage and annotations declaring it read-only and idempotent, the description is mostly complete. However, it doesn't mention what a 'collector group' is in this context, whether the list is paginated by default, or how the filter parameter interacts with name_filter (though the schema does mention that filter overrides name_filter). The lack of an output schema means the agent doesn't know the return shape, but for a list operation this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (limit, filter, offset, name_filter) are already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List collector groups' uses a specific verb ('List') and a clear resource ('collector groups'), which distinguishes it from related tools like get_collector_group (singular) and create_collector_group. However, it doesn't explicitly differentiate from other list tools in the sibling set, so it's clear but not maximally distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only listing operation, and the annotations (readOnlyHint=true) reinforce that it's safe to call. However, there's no explicit guidance on when to use this tool versus alternatives like get_collector_group or get_collectors, nor any mention of prerequisites or context. The usage context is implied by the name and description but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collector_healthARead-onlyIdempotent
Enriched collector status with time-since-last-contact, downstream device count, dependent alert count, and optional CollectorDown history. Leading indicator for site-level events. Prefer this over get_collectors when investigating potential outages.
| Name | Required | Description | Default |
|---|---|---|---|
| collector_id | No | Single collector ID. Other scope args are ignored if set. | |
| history_days | No | CollectorDown history lookback in days | |
| include_history | No | Include CollectorDown alert history | |
| collector_group_id | No | Restrict to collectors in this group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description adds value by describing the enriched nature of the result and the optional history component. It also frames the tool as a 'leading indicator' for outages, which gives useful interpretive context beyond the annotations. It doesn't cover return format or pagination, but that is a minor gap here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The first sentence fronts the main purpose and output contents, the second adds contextual value, and the third gives explicit tool routing. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only status tool, the description covers purpose, key output fields, and when to choose it over the sibling. The schema fully documents parameters and annotations cover safety. The only notable gap is that no parameters are required, so the behavior when called with no arguments is not explicitly stated, but this is a minor ambiguity given the overall clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters clearly. The description mentions 'optional CollectorDown history,' which partially aligns with include_history, but does not add meaningful parameter syntax or nuance beyond the schema. A baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Enriched collector status') and enumerates the exact data it returns: time-since-last-contact, downstream device count, dependent alert count, and optional CollectorDown history. It differentiates itself from get_collectors by positioning this as the health-focused variant, so an agent can identify it without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use this tool: 'Prefer this over get_collectors when investigating potential outages.' This gives a clear decision rule and names the alternative tool, which is exactly the kind of routing guidance agents need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectorsCRead-onlyIdempotent
List collectors from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: hostname~prod,collectorGroupId:1 | |
| offset | No | Pagination offset | |
| hostname_filter | No | Filter by hostname (substring match) | |
| collector_group_id | No | Filter by collector group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive status, so the safety profile is covered. The description adds no behavioral detail beyond the word 'List'—no mention of pagination, filtering semantics, response shape, or API-side constraints, so it contributes nothing beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At four words, the description is tightly written with no filler, and the core verb/resource is front-loaded. It could have added a second sentence about pagination or alternatives, but as written it is efficient and not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, all parameters are optional and documented, and annotations cover side effects and idempotency. Missing are any statement about paginated results (default limit 50, offset), response contents given the lack of an output schema, and guidance distinguishing this from the singular get_collector. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the individual parameter descriptions document limit, offset, filters, and the raw filter expression with an example. The description adds no parameter-level meaning, so the baseline of 3 applies because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('collectors') with the system context ('LogicMonitor'), so an agent can tell this is a read-only enumeration tool. It doesn't explicitly differentiate from siblings like get_collector or get_collector_groups, but the plural resource and tool name make the core purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over get_collector, get_collector_groups, update_collector, or delete_collector. There are no exclusions, context cues, or alternative routing, so an agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configsourceBRead-onlyIdempotent
Get details about a specific ConfigSource
| Name | Required | Description | Default |
|---|---|---|---|
| configsource_id | Yes | ConfigSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no extra behavioral context beyond 'Get details,' such as what fields are returned, whether the ConfigSource must exist, or how it relates to configsource updates. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundancy. It front-loads the action and resource immediately, which is appropriate for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only retrieval tool with rich annotations, the description is largely adequate. The main gaps are not mentioning that configsource IDs can be discovered via get_configsources and not describing the response shape, but the low complexity means an agent can still invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, configsource_id, is documented as 'ConfigSource ID.' The description adds no additional meaning about the parameter, its source, format, or validation. Baseline 3 is appropriate because the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get details') and the resource ('a specific ConfigSource'), and the singular 'specific' indicates this is a by-ID lookup rather than a list operation. It doesn't explicitly name siblings like get_configsources or get_configsource_update_reasons, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives. An agent must infer that get_configsources is the listing counterpart and that this tool is for retrieving exactly one ConfigSource by ID. No when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configsourcesCRead-onlyIdempotent
List ConfigSources
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~Cisco,technology:snmp | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, and the description adds no behavioral context beyond the word 'List'. It does not mention pagination, defaults, or return shape, so it provides little value beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words, but it is under-specified for a tool with five parameters and many closely related siblings. The brevity is closer to minimalism than to a well-structured, informative description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description leaves out what ConfigSources are, what the response contains, and how this tool relates to get_configsource. The annotations and schema cover safety and parameters, but the description alone is insufficient for full invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters documented including defaults and filter semantics. The description adds no parameter detail, but the schema already carries the full semantic load, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('ConfigSources'), so an agent knows this tool enumerates ConfigSources. It does not explicitly differentiate itself from the singular get_configsource or related configsource tools, but the plural resource name conveys collection scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. Siblings like get_configsource, get_datasources, and create_configsource are not mentioned, leaving the agent to infer the appropriate selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configsource_update_reasonsBRead-onlyIdempotent
Get update history and audit trail for a ConfigSource
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| offset | No | Pagination offset | |
| configsource_id | Yes | ConfigSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only, non-destructive, idempotent behavior, so the description offers limited additional behavioral context. The phrase 'audit trail' hints at the output nature, but it does not discuss pagination, required permissions, or the shape of returned data. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, short sentence that is front-loaded with the action and resource. It is appropriately concise without unnecessary words, though it could include a bit more value without harming structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and the description does not explain what the returned history/audit trail contains, how pagination parameters affect results, or how this tool relates to audit-log siblings. For a simple read tool this is a notable gap, as an agent must guess at the return format and use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a basic description. The description text adds no specific parameter semantics beyond what the schema provides, but the baseline of 3 is appropriate given the schema's coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (get) and resource (update history and audit trail for a ConfigSource), making the basic operation evident. It does not explicitly differentiate it from related tools like get_audit_logs or get_configsource, so it loses the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_configsource, get_audit_logs, or other audit-related siblings. The description only states what it does, leaving the agent to infer context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_recommendationARead-onlyIdempotent
Get a specific cost recommendation by ID (v224 API)
| Name | Required | Description | Default |
|---|---|---|---|
| recommendation_id | Yes | ID of the recommendation to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the 'v224 API' detail, which provides minor version context. It doesn't describe return format or error behavior, but annotations cover the safety profile, so the description's additional value is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded with the primary action ('Get a specific cost recommendation by ID') and includes the API version for context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one documented parameter and annotations covering safety, the description is largely sufficient. It doesn't describe the return format (no output schema exists), but given the simplicity and annotations, it is nearly complete. Minor gap: no mention of potential 404 errors or if the ID must exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the single parameter 'recommendation_id' as the ID to retrieve. The description doesn't add extra meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving a specific cost recommendation by ID. It is concise and unambiguous, distinguishing it from the plural 'get_cost_recommendations' which likely lists recommendations. The mention of 'v224 API' adds specificity but is not essential for the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific recommendation ID and need its details, contrasting with 'get_cost_recommendations' for listing all. However, it doesn't explicitly state when not to use it or mention alternatives, but the sibling list provides context. Given the simple nature of the tool, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_recommendation_categoriesARead-onlyIdempotent
Get cost recommendation categories with counts and savings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds the return scope (categories with counts and savings) but no further behavioral details like ordering or pagination. Given the annotations, this is sufficient and adds some context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. The action and resource are front-loaded, and the entire description is immediately scannable and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and annotations covering safety, the description is nearly complete. It tells the agent what will be returned ('categories with counts and savings'). The only minor gap is not describing the exact response structure, but the output schema is absent and the description gives a reasonable expectation for a simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema requires no documentation. The description adds value by indicating what the result contains (counts and savings), which is more than necessary for a parameterless call and earns above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and names the resource 'cost recommendation categories' along with the return content 'counts and savings'. This clearly distinguishes it from sibling tools like get_cost_recommendations (individual recommendations) and get_idle_resources (idle resource listing), making the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_cost_recommendations or get_cost_recommendation. The description simply states functionality and leaves the agent to infer whether categories are meant for summaries versus detailed recommendations, offering no 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_cost_recommendationsBRead-onlyIdempotent
Get cost optimization recommendations. Category filter takes the category description string from get_cost_recommendation_categories
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| offset | No | Results to skip for pagination | |
| status | No | Filter by recommendation status (e.g. active) | |
| category | No | Category description string (e.g. "Idle AWS EC2 instances") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond this—no mention of pagination defaults, ordering, response shape, or what happens when no filters are supplied. It does not contradict the annotations, but it provides no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The main purpose is stated firstain and the category-filter dependency is a useful addition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list call with fully documented parameters and supportive annotations, this is close to sufficient. But the absence of an output schema and lack of guidance distinguishing it from the singular get_cost_recommendation leaves a small but real gap for an agent deciding which tool to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage with clear descriptions for limit, offset, status, and category. The additional note that the category filter takes the description string from get_cost_recommendation_categories reinforces the schema example but adds only marginal value, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get cost optimization recommendations.' It adds a useful pointer that the category filter uses description strings from get_cost_recommendation_categories. However, it does not distinguish this list operation from the sibling get_cost_recommendation (singular), so an agent could confuse which to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of get_cost_recommendation or get_cost_recommendation_categories. The only usage hint is that the category parameter should use the description string from the categories endpoint, which is more of a parameter tip than a tool-selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboardBRead-onlyIdempotent
Get detailed information about a specific dashboard
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond a vague promise of 'detailed information', but nothing contradicts the annotations, so a middle score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant wording. Every word contributes to the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with robust annotations, the description is mostly sufficient, but the absence of an output schema increases the burden to describe what 'detailed information' includes. It also does not mention that widgets are handled by get_dashboard_widgets, leaving a mild ambiguity for agent routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the only parameter dashboard_id is documented in the schema. The description's reference to 'a specific dashboard' loosely aligns with dashboard_id but adds no additional meaning or format details, so it does not exceed the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('specific dashboard'), and the singular wording distinguishes it from the plural list tool get_dashboards. However, it does not explicitly clarify how it differs from get_dashboard_widgets, since 'detailed information' could arguably include widgets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings such as get_dashboards, get_dashboard_widgets, or get_dashboard_groups. There is no mention of alternatives or exclusions, leaving the agent to infer context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_groupBRead-onlyIdempotent
Get details about a specific dashboard group
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Dashboard group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and idempotentHint true, destructiveHint false, which already signal a safe read operation. The description adds no extra behavioral details (e.g., whether it returns nested widgets or requires permissions). Since annotations cover the safety profile, a 3 is appropriate for merely confirming the intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded with the core action and resource. No wasted words, and it serves its purpose without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, the description is minimally sufficient. However, it doesn't state what details are returned (e.g., name, widgets) or clarify the relationship to dashboard groups, which could be useful. Given the low complexity and high schema coverage, a 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter 'group_id' is already described as 'Dashboard group ID'. The description doesn't add any extra meaning (e.g., how to find the ID). At high coverage, baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (dashboard group), and likely distinguishes it from siblings like get_dashboard_groups (list) and get_dashboard. It doesn't mention scope or specifics, but the verb+resource 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.
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_dashboard_groups or get_dashboard. An agent must infer from the name alone. There is no mention of prerequisites or context in which this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_groupsBRead-onlyIdempotent
List dashboard groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds no additional behavioral context, such as whether results are paginated, how the limit parameter affects results, or what the returned structure contains. It essentially restates the operation name without enriching the agent's understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A three-word description is extremely concise and front-loaded with the action and object. There is no extraneous content; every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one optional parameter, full annotation coverage, and a clear read-only purpose. The description is minimally viable, but it lacks any mention of pagination behavior (though the schema's default of 50 helps), does not distinguish when to use this vs. get_dashboard_group, and there is no output schema to clarify the return format. This is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents the only parameter, 'limit', including its type, default value, and meaning ('Max results'). The description does not add anything about parameter usage, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'dashboard groups' (plural), distinguishing it from the singular sibling get_dashboard_group and from create/update/delete variants. This gives an agent an unambiguous understanding of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool as opposed to get_dashboard_group, get_dashboards, or other dashboard-related tools. It does not mention any conditions, prerequisites, or exclusions, leaving the agent without routing support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboardsBRead-onlyIdempotent
List dashboards from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~prod,owner:admin | |
| offset | No | Pagination offset | |
| group_id | No | Filter by group ID | |
| name_filter | No | Filter by name (substring) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnly, idempotent, openWorld, and non-destructive behavior, but the description adds no behavioral context beyond the verb 'List.' It does not mention pagination behavior, result scoping, or how filtering affects results, so the description contributes little beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It states the core purpose immediately and every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter list operation with no output schema, the description is minimally adequate but leaves the agent to infer pagination, filtering intent, and the distinction from the singular get_dashboard. The annotations and schema fill in safety and parameter details, but the description itself is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already fully documented in the schema. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List dashboards'), clearly indicating a plural listing operation. This distinguishes it from sibling tools like get_dashboard and get_dashboard_widgets, which either target a single dashboard or a different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool instead of alternatives such as get_dashboard, get_dashboard_groups, or export_dashboard. There are no stated conditions, exclusions, or references to related tools, so an agent gets no selection guidance beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_widgetsBRead-onlyIdempotent
Get widgets configured on a dashboard
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, which covers the safety profile. The description adds minimal behavioral context by confirming the resource is dashboard-scoped, but it does not disclose output shape, pagination, ordering, or other runtime behavior. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, no repetition of the tool name, and the core action is front-loaded. Every word adds clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of a one-parameter, read-only getter with rich annotations and a fully documented schema, this is nearly complete for correct invocation. It could say whether the result is always a full list or describe return structure, but the missing detail is unlikely to block an agent from selecting and calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: dashboard_id is fully documented as 'Dashboard ID' and required. The description only restates the dashboard relationship, adding no new meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('widgets'), and a scoping qualifier ('configured on a dashboard'), so the tool's purpose is immediately clear. It distinguishes from get_dashboard and get_widget by indicating a dashboard-scoped list of widget objects, though it does not explicitly contrast itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over related tools like get_widget or get_dashboard, and it mentions no exclusions or conditions. The intended use is only implied by the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasourceCRead-onlyIdempotent
Get details about a specific datasource
| Name | Required | Description | Default |
|---|---|---|---|
| datasource_id | Yes | Datasource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description adds no extra behavioral context beyond 'details'—it does not mention return shape, scoping, permissions, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words. It could be slightly more specific, but it is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only getter with strong annotations, this is minimally adequate. However, there is no output schema and the description does not clarify what 'details' will contain or how this tool differs from similar datasource-related getters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with datasource_id clearly documented as an integer. The description adds no additional parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and resource ('datasource'), and 'specific' signals this is a single-item fetch rather than a list. It is distinguishable from siblings like get_datasources, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusion criteria, and no mention of alternatives such as get_datasources or get_device_datasources. Usage is only weakly implied by the word 'specific' and the singular name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasourcesCRead-onlyIdempotent
List datasources from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~CPU,group:Core | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already declare (read-only, idempotent, non-destructive). It does not mention pagination, filtering semantics, return shape, or any operational behavior such as rate limits or auth needs. Since annotations cover the safety profile but the description contributes no extra behavioral disclosure, it falls to 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous wording. However, it is extremely terse and essentially restates the tool name, offering no structural advantage beyond being short. It earns a 4 for lack of waste, but is not exemplary because it doesn't structure additional helpful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a relatively simple but parameterized list operation, the description should explain return values, pagination behavior, or how the filters interact. It provides none of that, leaving the agent to infer behavior from the parameter names and the tool name. For a 5-parameter tool with no output schema, this is a notable gap, so a score of 2 is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (limit, filter, offset, name_filter, applies_to_filter) having its own description including an example for filter. The tool description itself adds no parameter-specific meaning, but the baseline is 3 given the rich schema. The description neither clarifies nor obscures parameters, so 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('List') and resource ('datasources from LogicMonitor'), making the primary purpose unambiguous. However, it does not explicitly distinguish this from sibling tools like get_datasource (singular) or get_device_datasources, relying on the plural form and name to suggest a list operation. This is clear but lacks explicit sibling differentiation, hence 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives such as get_datasource or get_device_datasources. It does not mention any context, prerequisites, or filter scenarios. With zero usage guidance, the agent must infer from the name and schema, so a score of 2 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deviceBRead-onlyIdempotent
Get detailed information about a specific device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral detail beyond the verb 'Get', such as what 'detailed information' includes, error behavior, or relationship to other device-related operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no wasted words. The core action and target resource are front-loaded, making it immediately scannable and appropriately sized for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with strong annotations, the description is mostly adequate, but it lacks an explicit statement of what the returned information contains and does not disambiguate from the many get_device_* sibling tools. Without an output schema, more specificity would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single required device_id is documented in the schema as 'Device ID'. The description adds no parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get detailed information about a specific device (resource)'. It indicates a single-item operation, which helps distinguish it from the plural get_devices list operation, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus siblings such as get_devices, get_device_data, or get_device_datasources. The description does not mention exclusions, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_batchjobsARead-onlyIdempotent
List BatchJob datasources applied to a device (resource); per-run output lives in instance data via get_device_data
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, so the description only needs to add context. It adds the non-obvious behavioral distinction that this returns only datasource attachments, not per-run results, and points to where run output resides. This goes beyond the structured metadata without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. The semicolon clause about get_device_data earns its place by preventing a common misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, low-complexity list operation with fully documented parameters and safety annotations, the description covers what is returned and what is not. The pointer to get_device_data fills the only likely gap an agent would encounter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so device_id and limit are already documented and the description need not elaborate. It does not add parameter-level meaning beyond the schema, matching the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('BatchJob datasources applied to a device'), which clearly differentiates it from the sibling get_batchjobs and get_device_data. The parenthetical '(resource)' unambiguously anchors the operation to a device resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes per-run output to get_device_data, telling an agent when this list tool is not the right choice. The 'applied to a device' scoping makes the device-specific use case clear relative to the general get_batchjobs sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_configBRead-onlyIdempotent
List config versions collected for a device instance
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max config versions to return | |
| offset | No | Pagination offset | |
| device_id | Yes | Device ID | |
| instance_id | Yes | Instance ID (e.g. Running-Config) | |
| device_datasource_id | Yes | Device-DataSource ID for the ConfigSource |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds only that versions were 'collected for a device instance', which is mildly informative but doesn't disclose ordering, pagination behavior, or error semantics. No contradiction; it just adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eight-word sentence with no filler. The core verb, resource, and scope are front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with a well-documented schema and strong safety annotations, the minimal description is adequate. However, with no output schema, the description doesn't clarify what fields a config version contains, what ordering is applied, or how limit/offset affect results beyond the schema defaults. These gaps are non-fatal but make it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description doesn't add any parameter-level meaning beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (List) and resource (config versions) with a scoping qualifier (collected for a device instance). It clearly identifies the operation, though it doesn't explicitly differentiate from the sibling get_device_config_version; the plural 'versions' implies a list operation but leaves the distinction implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives like get_device_config_version (singular fetch) or collect_device_config (trigger collection). The only hint is the word 'List', which implies a query operation, but no exclusions or alternative-selection criteria are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_config_versionARead-onlyIdempotent
Get a specific config version with full content and diffs
| Name | Required | Description | Default |
|---|---|---|---|
| config_id | Yes | Config version ID (from get_device_config) | |
| device_id | Yes | Device ID | |
| instance_id | Yes | Instance ID | |
| start_epoch | No | Epoch to compare against. Use 0 to compare with previous version. | |
| device_datasource_id | Yes | Device-DataSource ID for the ConfigSource |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds that it returns full content and diffs, providing additional behavioral context about the output. It does not introduce contradictions and adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It conveys the core purpose and output efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the schema (which explains parameter provenance, e.g., config_id from get_device_config) and annotations, gives an agent sufficient information to call the tool correctly. It lacks an output schema, but the description hints at the return content. There are no significant gaps for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented. The description does not add parameter-specific details beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get), the specific resource (a config version), and what it provides (full content and diffs). This distinguishes it from sibling tools like get_device_config (which lists versions) and collect_device_config (which initiates collection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this tool is for retrieving a specific config version, presumably after obtaining a config_id from get_device_config. While it doesn't name alternatives explicitly, the description and name imply the use case. It lacks explicit exclusions but is not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_connectionsCRead-onlyIdempotent
Get device/resource relationships and connections
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the annotations, such as what data is returned, whether it requires specific permissions, or how it handles missing devices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler words. It is appropriately concise for its content, though the content is vague. No structural issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's vague scope and the presence of many similar 'get' tools, the description is insufficient. It does not explain what 'connections' means, what relationships are returned, or how this differs from get_device_neighbors, get_device_interfaces, or other topology-related tools. No output schema exists, so the description must bear the burden of defining response expectations, and it fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter, device_id, is described as 'Device ID'. The description does not add any further semantics about required formats, validation rules, or how the parameter affects results. Baseline 3 applies since the schema carries the full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and names a resource ('device/resource relationships and connections'), but the resource is ambiguous. It does not distinguish this tool from siblings like get_device_neighbors, get_device_interfaces, or get_topology_map, all of which also deal with relationships or connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or differencing conditions, leaving the agent to infer usage from the ambiguous wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_dataARead-onlyIdempotent
Get metric data for a device/resource datasource instance
Common mistakes: Returns most recent data unless period/start/end specified. Requires device_datasource_id (from get_device_datasources) not the datasource definition ID.
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End time in epoch seconds (optional) | |
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (optional, all if omitted) | |
| start_time | No | Start time in epoch seconds (optional) | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID (from get_device_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds meaningful behavioral context: the default time-window behavior and the correct ID source. These go beyond the schema and annotations Encapsulate. It does not cover return format or pagination, but the added context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: a one-line purpose followed by a compact 'Common mistakes' section. Every sentence earns its place, and the key warnings are front-loaded. No fluff, and the structure makes the pitfalls easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param read-only tool with full schema coverage retriever, the description provides the essential prerequisite (ID source) and a critical behavioral caveat (time window). It does not explain the return data structure or instance_id semantics, but those are partially covered by schema parameter descriptions. Overall, sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, so baseline is 3. The description adds semantics by clarifying that device_datasource_id is the device-specific ID (from get_device_datasources) rather than the global datasource definition ID, and by explaining that start_time/end_time control the time window. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get metric data for a device/resource datasource instance.' It identifies the tool's purpose as retrieving metric data for a datasource instance, and the common-mistakes note about device_datasource_id helps distinguish it from get_device_datasources. However, 'device/resource' is slightly ambiguous and it does not explicitly name an alternative for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context by specifying a prerequisite (get device_datasource_id from get_device_datasources) and a common pitfall (returns most recent data unless start/end specified). This is actionable for an agent. It does not mention alternatives for retrieving metric data, but the prerequisites and default behavior are sufficient to guide invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_datasourcesARead-onlyIdempotent
Get datasources applied to a device (resource)
Common mistakes: Returns device-datasource associations not definitions. The ID returned here is device_datasource_id for use with get_device_data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral nuance beyond annotations: it warns that the result contains associations, not definitions, and that the returned ID should be used with get_device_data. This corrects a likely misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The main purpose is front-loaded, and the high-value clarification about associations versus definitions is delivered immediately without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with complete schema annotations, the description covers the critical context: what is returned (associations, not definitions) and how the returned identifier should be used downstream. It does not detail response fields, pagination, or ordering, but these are less critical given the annotations and simple parameter set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions (100% coverage), so the schema carries the parameter semantics. The description does not add parameter-level detail but does clarify the meaning of a returned ID, which indirectly relates to how the response should be used. This falls at the baseline for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Get datasources applied to a device (resource)'. It goes further by explicitly distinguishing the result from definitions ('Returns device-datasource associations not definitions'), which sets it apart from siblings like get_datasources and get_datasource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies what this tool returns versus definitions, implicitly steering agents toward get_datasources for definitions. It also gives downstream guidance that the returned ID is a device_datasource_id for use with get_device_data. However, it does not explicitly name sibling tools or state exact conditions for choosing alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_eventsourcesARead-onlyIdempotent
Get EventSources applied to a device (resource). Returns device-level EventSource associations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds that the result is device-level associations, which is minor extra context. No further behavioral detail (pagination, ordering, auth) is provided, but annotations lower the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The second sentence slightly restates the first, but it is still tight and front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only nature, strong annotations, and fully covered schema, the description is adequate for an agent to invoke this tool correctly. No output schema exists, but a list of event source associations can be assumed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; device_id and limit are documented. The description does not add beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get EventSources applied to a device' with a specific verb and resource, and clarifies it returns device-level associations, distinguishing it from a general get_eventsources. It is clear, though the parenthetical '(resource)' adds little.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing implies this is for a specific device rather than a global list, but it does not explicitly state when to prefer this over get_eventsources or name alternatives. Usage is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_groupARead-onlyIdempotent
Get detailed information about a specific device/resource group, including appliesTo expression and parent ID
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Device group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds that the tool returns 'appliesTo expression and parent ID', which is return-content information rather than behavioral traits. It does not contradict annotations. The additional detail is useful but not substantial beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource, and includes the key detail about what information is returned. There is no filler or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should provide a more complete picture of what is returned. It mentions 'detailed information' and two specific fields, but does not enumerate all possible return fields. Given the tool's simplicity and annotations, this is adequate but leaves some ambiguity about the full response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the only parameter group_id described as 'Device group ID'. The description does not add further meaning, format, or constraints beyond the schema. With full coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'specific device/resource group', and specifies that it includes 'appliesTo expression and parent ID'. This distinguishes it from the plural sibling get_device_groups, which likely lists groups, and from other get_* tools targeting different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives like get_device_groups. However, the singular 'specific' implies usage for a single group by ID, and the presence of the plural sibling suggests the distinction, but it is only implied, not stated. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_groupsBRead-onlyIdempotent
List device/resource groups from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| parent_id | No | Filter by parent group ID | |
| name_filter | No | Filter by group name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond the basic list operation—no mention of pagination behavior, default limits, or how filters interact. With annotations covering the safety profile, a 3 is appropriate for the minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose. It wastes no words, though it could arguably add a bit more context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and safety annotations, the description is minimally adequate. However, it doesn't mention the default limit behavior, the meaning of 'resource groups' in LogicMonitor, or how this relates to the singular get_device_group sibling, which would help an agent fully understand the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (limit, parent_id, name_filter). The description adds no additional meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('device/resource groups from LogicMonitor'), which clearly identifies the operation. It doesn't explicitly distinguish from sibling tools like get_device_group or get_collector_groups, but the plural 'groups' and 'device/resource' scope make the purpose reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing device groups but provides no explicit guidance on when to choose this over alternatives like get_device_group (singular) or get_collector_groups. The context signals show many sibling tools, but the description doesn't mention any exclusions or alternatives, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_instancesARead-onlyIdempotent
Get instances of a datasource on a device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID | |
| device_datasource_id | Yes | Device-DataSource ID (from get_device_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds minimal context beyond that; it doesn't mention pagination (despite a limit parameter) or clarify that it returns a list of instances. Since annotations cover safety, the description's contribution is limited but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that clearly states the tool's purpose without unnecessary details. It is front-loaded with the verb and resource, making it easy to scan. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with full schema coverage and no complex output schema, the description covers the core purpose adequately. It lacks explicit mention of pagination, but that is minor. The annotations already declare the safety profile. The tool has a 'limit' parameter, so mentioning pagination would be a nice addition, but it's not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description references 'device_datasource_id' by name in the schema but adds no extra semantic meaning beyond what's stated. With full coverage, a baseline of 3 is appropriate; the description doesn't enhance understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('instances of a datasource on a device'), and names the resource type ('resource'). It is clear and distinguishes the tool from siblings like get_device_data (which fetches data) or get_device_datasources (which lists datasources). It is concise but does not explicitly differentiate from similar 'get' tools, hence 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving instances but does not provide explicit guidance on when to use this tool versus alternatives like get_device_data or get_datasource. The context is clear from the name and description, but there is no 'when not to use' or mention of alternative tools. It is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_interfacesBRead-onlyIdempotent
Get network interfaces for a device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral context such as return format, pagination, or filtering behavior, but for a simple read-only getter this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence with the verb and object front-loaded and no filler. The parenthetical '(resource)' is slightly redundant, but it does not meaningfully detract from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter, read-only tool whose safety characteristics are already covered by annotations, so the description does not need to be elaborate. However, with no output schema and no mention of what data is returned, an agent cannot predict the response shape before invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter, device_id, is already documented as 'Device ID'. The description merely references 'a device' and adds no meaning beyond what the schema provides, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and a clear resource 'network interfaces for a device', making the tool's purpose obvious. It is distinguishable from sibling getters like get_device, get_device_datasources, and get_device_connections without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_device_connections or get_interface_metrics. The agent is left to infer the appropriate context from the tool name alone, with no exclusions or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_logsourcesARead-onlyIdempotent
Get LogSources applied to a device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the device-scoping constraint and no additional behaviors like pagination, ordering, or response shape, which is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The parenthetical '(resource)' is slightly redundant but does not hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read with two well-documented parameters and safety annotations, the description is nearly complete. The only minor gaps are lack of explicit return-shape/pagination context and no mention of the sibling get_logsources for un-scoped queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: device_id is documented as 'Device ID' and limit as 'Max results' with a default of 50. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get LogSources applied to a device'), making the scope clear and distinguishing it from the sibling get_logsources, which would not be device-scoped. Even though it is terse, the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'applied to a device' gives clear context for when this tool is appropriate: device-scoped log source retrieval. It does not explicitly name alternatives such as get_logsources or get_device_datasources, nor state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_neighborsBRead-onlyIdempotent
Get neighboring devices/resources based on topology
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Depth of neighbor search | |
| device_id | Yes | Device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds little behavioral detail beyond 'based on topology,' and does not mention how depth affects results or what kind of neighbors are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words and the core action is front-loaded. It is appropriately brief for a simple read operation, though the phrasing 'devices/resources' is slightly ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with comprehensive annotations and full schema coverage, the description is mostly sufficient. However, it does not clarify what 'neighbors' means, how depth interacts with topology, or what the return payload contains, and there is no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description itself adds no parameter-level meaning. The schema already documents device_id and depth, but the descriptions are minimal and the tool description does not enrich their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('neighboring devices/resources') and ties it to topology, making the tool's core purpose clear. However, it does not differentiate this from closely related siblings like get_device_connections or get_topology_map, so the purpose is clear but not uniquely framed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving topology-based neighbors, but it gives no explicit when-to-use guidance or alternatives. With many topology-related sibling tools present, an agent must infer the right context from the name and brief description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_propertiesCRead-onlyIdempotent
Get all properties of a device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_id | Yes | Device ID | |
| name_filter | No | Filter by property name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, and the description adds no behavioral context beyond 'get'. It does not mention pagination, result limits, filtering behavior, or any caveats, so it provides no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key action and resource. The parenthetical '(resource)' adds little value and slightly weakens an otherwise concise statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no usage guidance, the description is thin for a tool that sits among many device-related siblings. It does not explain what 'properties' includes, how filtering works, or how this relates to get_device_property, leaving meaningful gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no parameter-level meaning, but per the baseline this is acceptable when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a 'get' operation on device properties, and 'all properties' distinguishes it from the singular sibling get_device_property. However, it does not explicitly name the sibling or explain when to choose this over get_device_property, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_device_property, get_device_datasources, or get_device_instances. The description merely states what it does, leaving the agent to infer usage context 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_device_propertyARead-onlyIdempotent
Get a specific property of a device (resource)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| property_name | Yes | Property name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral detail beyond the singular focus; it does not mention return shape, error behavior, or what happens if the property does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler. The core action and target resource are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with fully documented parameters and strong annotations, the description is largely sufficient. The only gap is that it does not describe the response format or behavior when the property is missing, but the low complexity reduces the impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both device_id and property_name documented in the input schema. The description adds minimal extra meaning beyond the schema and does not clarify acceptable property_name formats or sources.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get a specific property of a device.' It clearly communicates the singular scope, distinguishing it from the plural sibling get_device_properties. An agent can tell exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool retrieves one named property of a device, which implies that get_device_properties is for listing all properties. However, it does not explicitly state when to prefer this over related getters or how to discover valid property names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_devicesCRead-onlyIdempotent
List devices (resources) from LogicMonitor with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (max 1000) | |
| filter | No | Raw filter expression (overrides other filters). Syntax: field:value, field~value. String values must be quoted: displayName~"server". Custom property queries use dot-notation: customProperties.name:"env",customProperties.value:"prod" | |
| offset | No | Pagination offset | |
| status | No | Filter by device status | |
| group_id | No | Filter by device group ID | |
| name_filter | No | Filter by display name (substring match) | |
| hostname_filter | No | Filter by hostname or IP address (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature, but the description itself adds no behavioral context beyond the schema's filter parameters. It does not mention pagination behavior, result shape, or scope limitations, and it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the core operation immediately. It is concise, though the phrase 'with optional filtering' is largely redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with fully documented parameters, the description is minimally sufficient. However, with no output schema and no mention of what the returned device list contains or how results are paginated, an agent is left to infer behavior beyond invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions, so the baseline applies. The description adds no parameter-level detail, but none is necessary because the schema documents fields, defaults, enums, and filter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource ('List devices (resources) from LogicMonitor') and notes the tool supports filtering. It does not explicitly contrast it with siblings like get_device, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus get_device, get_device_groups, or other device-related tools. 'With optional filtering' hints at capability but does not specify use cases, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnostic_remediation_assignmentsARead-onlyIdempotent
List the diagnostic and remediation sources assigned to a specific resource or alert (Automated Diagnostics & Remediation). Unlike get_diagnosticsources/get_remediationsources, this resolves which modules actually apply to the target.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| alert_id | No | Alert ID (provide this or resource_id) | |
| module_type | No | Restrict to one module type (both if omitted) | |
| resource_id | No | Device/resource ID (provide this or alert_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive safety. The description adds the behavioral nuance that this tool resolves which modules actually apply to a target, which is helpful context beyond the annotations. It does not mention pagination or response shape, but the annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core action and scope, the second provides the key differentiator from siblings. Both are purposeful with no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with four optional, well-documented parameters and no output schema, the description adequately explains what it does and when to use it. The only minor gap is that it does not clarify behavior when both alert_id and resource_id are provided, but the schema's 'provide this or resource_id' wording is sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters (limit, alert_id, module_type, resource_id) are fully documented in the schema. The description only mirrors the association with 'specific resource or alert' and does not add new meaning beyond the schema, matching the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('diagnostic and remediation sources assigned to a specific resource or alert'). It also explicitly differentiates from siblings get_diagnosticsources/get_remediationsources by noting it 'resolves which modules actually apply to the target', so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the closely related siblings (get_diagnosticsources/get_remediationsources) and states the key difference: this tool resolves applied modules rather than simply listing sources. This gives the agent a concrete condition for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnostic_remediation_resultsARead-onlyIdempotent
Get structured execution results for diagnostic and remediation source runs: status, trigger type, executor, script output, and timing. Provide exactly one of alert_id or host_id. Time window params are epoch milliseconds; result timestamps are epoch seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page | |
| cursor | No | Diagnostic-side cursor from a previous response (not valid with module_type "both") | |
| offset | No | Page offset | |
| host_id | No | Device/host ID (exactly one of alert_id/host_id) | |
| alert_id | No | Alert ID (exactly one of alert_id/host_id) | |
| end_time_ms | No | Window end, epoch milliseconds | |
| module_type | No | Which module results to return | both |
| start_time_ms | No | Window start, epoch milliseconds | |
| remediation_cursor | No | Remediation-side cursor from a previous response (not valid with module_type "both") | |
| diagnostic_source_id | No | Filter to one DiagnosticSource by ID | |
| remediation_source_id | No | Filter to one RemediationSource by ID | |
| diagnostic_source_name | No | Filter to one DiagnosticSource by name | |
| remediation_source_name | No | Filter to one RemediationSource by name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context beyond the annotations: it reveals the output shape (status, trigger type, executor, script output, timing) and highlights the input/output time unit mismatch (milliseconds vs seconds). No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the core purpose and expected output, the second delivers the essential constraints and unit clarification. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 13 parameters, a 100% described schema, and no output schema, the description covers the key behavioral and structural aspects: what is returned, the required selector, and time-unit handling. It does not elaborate on pagination via cursors/offset/limit, but those are documented in the schema and the tool's core use is still understandable without that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is described individually. The description adds cross-parameter meaning by stating the 'exactly one' mutual exclusion between alert_id and host_id, and by explaining that time-window parameters use epoch milliseconds while result timestamps use epoch seconds. This goes beyond the per-parameter schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('structured execution results for diagnostic and remediation source runs'), and enumerates the returned fields (status, trigger type, executor, script output, timing). It is clearly distinguishable from siblings such as get_diagnosticsources (which lists sources, not results) and get_diagnostic_remediation_assignments (assignments, not execution output).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete invocation constraints: 'Provide exactly one of alert_id or host_id' and clarifies time unit conventions. This is clear context for when to call the tool. It does not explicitly state when not to use it or name alternatives, but the required-parameter guidance is strong enough for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnosticsourceARead-onlyIdempotent
Get details about a specific DiagnosticSource including datapoints
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | DiagnosticSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'including datapoints' detail, which is useful return-content context, but does not disclose response structure, permissions, or potential size. Since annotations carry the main behavioral burden, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the action, resource, and a key detail (datapoints) efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get tool with one parameter and no output schema, the description is minimally adequate. It mentions 'details' and 'datapoints' but does not specify what fields are returned or whether datapoints are time-series data. More specificity would improve completeness, but the basic purpose is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% description coverage for source_id ('DiagnosticSource ID'), so the parameter is self-documenting. The description does not add semantic detail beyond what the schema already states, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('DiagnosticSource'), and scope ('specific') while adding that datapoints are included. This clearly distinguishes it from the plural get_diagnosticsources (list) and from get_datasource (different resource), even without naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool versus alternatives like get_diagnosticsources or execute_diagnostic. The agent must infer usage from the name and parameter alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnosticsourcesBRead-onlyIdempotent
List DiagnosticSources from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum sources to return (default: 50) | |
| filter | No | Raw LM filter expression (overrides typed filters). Operators: : (eq), !: (neq), ~ (contains), !~ (not contains). | |
| offset | No | Results to skip for pagination (default: 0) | |
| name_filter | No | Filter by source name (substring, server-side) | |
| group_filter | No | Filter by group (substring, server-side) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate readOnly, idempotent, open-world, and non-destructive behavior, and the description adds no behavioral context beyond restating the list operation. It does not mention pagination, result shape, or any side effects, though the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler; the verb, resource, and system are front-loaded. It earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with all-optional parameters, the description is minimally viable. However, it lacks any mention of what a DiagnosticSource is, what the response contains, or how this differs from get_diagnosticsource, so an agent gets only the bare invocation cue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (limit, filter, offset, name_filter, group_filter) is already documented in the schema. The description adds no parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a specific resource ('DiagnosticSources') and system ('LogicMonitor'), making the core operation clear. It does not explicitly contrast with the singular get_diagnosticsource sibling, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance about when to choose this tool over get_diagnosticsource or the create/update/delete variants. An agent must infer selection from sibling names and the plural resource, which is not stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escalation_chainARead-onlyIdempotent
Get details about a specific escalation chain
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | Escalation chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no additional behavioral context beyond the basic action, such as what details are returned or any dependencies. It is consistent with annotations but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the purpose and is appropriately minimal for a simple get operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with rich annotations and a single well-documented parameter, the description is sufficient. It does not describe the return format, but no output schema exists and the expectation for a 'get details' tool is standard. The completeness is adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter chain_id is described as 'Escalation chain ID' in the schema. The tool description does not add any further meaning, so it relies entirely on the schema, which is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'get' and the resource 'escalation chain' with 'specific' implying a single instance by ID, which distinguishes it from the sibling get_escalation_chains (plural). It is clear but does not explicitly name the alternative or the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific escalation chain' implies using this tool for a single chain when the ID is known, contrasting with listing all chains via get_escalation_chains. However, no explicit when-to-use or when-not-to-use guidance is provided, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escalation_chainsCRead-onlyIdempotent
List escalation chains
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description only restates the listing operation and adds no further context such as default result windows, ordering, pagination, or what the response represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded phrase with no filler or redundant restatement of parameters. It is concise and easy to scan, though sparse in the additional context it provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only list operation with one fully documented optional parameter and comprehensive safety annotations, the description is minimally sufficient. It lacks any mention of response shape or the singular alternative, but the combination of schema and annotations covers most operational needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter, limit, is already documented as 'Max results'. The description adds no parameter-specific meaning, but the baseline of 3 applies because the schema fully carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a concrete resource ('escalation chains'), so the core operation is clear. However, it does not distinguish itself from the sibling tool get_escalation_chain (singular) or other listing tools, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this plural listing endpoint versus get_escalation_chain for a specific chain, nor any mention of related create/update/delete tools. The agent is left to infer usage from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsourceBRead-onlyIdempotent
Get details about a specific EventSource
| Name | Required | Description | Default |
|---|---|---|---|
| eventsource_id | Yes | EventSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description only restates the get semantics and adds no additional behavioral context such as return format, pagination, permission requirements, or error behavior. It does not contradict the annotations, but it adds no value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. It is appropriately concise, though it is also minimal enough that it conveys little beyond the tool's basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one documented parameter and strong annotations, the description is minimally sufficient for a simple getter. However, there is no output schema and the description does not clarify what fields or shape the returned EventSource details will have, leaving some ambiguity about the full response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter eventsource_id is already documented as 'EventSource ID'. The description adds no further semantic detail about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('EventSource'), and the qualifier 'specific' distinguishes it from the list-oriented sibling get_eventsources. It is slightly vague about what 'details' are returned, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The singular 'specific EventSource' implies this is for retrieving one object by ID, but the description never explicitly states when to prefer it over alternatives like get_eventsources or get_device_eventsources, nor does it provide exclusions. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsourcesBRead-onlyIdempotent
List EventSources
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~Windows,group:Events | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no extra behavioral context such as pagination behavior, response shape, or whether this returns all EventSources versus a scoped subset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the core action, containing no filler or repetition. It is slightly too terse to fully orient an agent, but it earns its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations compensate for much of the missing detail, making this minimally viable for a simple read-only list endpoint. However, the description leaves unclear which set of EventSources is being listed and does not mention pagination or output expectations, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage and each parameter includes a meaningful description, so the schema carries the parameter-level burden. The tool description adds no parameter information, which is acceptable but does not elevate the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'List EventSources' unambiguously indicates a collection-listing operation. However, it does not explicitly distinguish this from sibling tools like get_eventsource or get_device_eventsources, so it lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use get_eventsources versus alternatives such as get_eventsource, get_device_eventsources, or get_collector_groups. The description does not mention exclusions, prerequisites, or suggested filter combinations, leaving the agent to infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_graph_dataCRead-onlyIdempotent
Get graph image data for visualization
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End time in epoch seconds (optional) | |
| graph_id | Yes | Graph ID | |
| device_id | Yes | Device ID | |
| start_time | No | Start time in epoch seconds (optional) | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID (from get_device_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context—no mention of return format, pagination, time-range behavior, or any limits. It essentially restates the resource and purpose without enriching the agent's understanding beyond what the annotations and schema already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of seven words, making it extremely concise and front-loaded. It is not verbose, but it is so minimal that it borders on under-specification. For a tool with six parameters and no output schema, the brevity is acceptable but not exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no output schema, and only a terse description, the agent lacks key context: what does 'graph image data' actually return (binary image, base64, URL)? How do start_time and end_time affect the result? The description does not compensate for the missing output schema, and the schema descriptions only cover parameter types, not the overall invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are documented with type and description (e.g., device_datasource_id is explicitly sourced from get_device_datasources). The tool description adds no parameter semantics beyond what the schema already provides, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get graph image data' with a stated purpose 'for visualization'. It is clear in its core function but does not explicitly distinguish itself from sibling tools like get_device_data or get_website_data, which also retrieve data for visualization. The name itself is descriptive, but the description alone does not disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of context, prerequisites, or scenarios where this tool is preferred over get_device_data or other get_* tools. The description offers no exclusions or usage conditions, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_idle_resourcesARead-onlyIdempotent
Get idle/underutilized cloud resources (resolved from idle-type cost recommendation categories)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| provider | No | Narrow to one cloud provider (aws, azure, gcp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful context that results are 'resolved from idle-type cost recommendation categories', which explains the data source. However, it doesn't disclose behavior like whether results are pre-filtered, how 'idle/underutilized' is determined, or whether the limit parameter caps at a hard maximum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core action and resource, with a parenthetical that adds valuable context about the data source. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters and full schema coverage, the description is mostly adequate. However, it doesn't clarify the relationship to sibling tools like get_cost_recommendations or get_cost_recommendation_categories, which could matter for an agent deciding between them. The parenthetical hints at the connection but doesn't make it explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (limit and provider). The description adds no parameter-specific meaning beyond what the schema provides, but the baseline of 3 is appropriate since the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('idle/underutilized cloud resources'), and adds a clarifying parenthetical about how these are resolved (from idle-type cost recommendation categories). This is clear and distinguishes it from generic list tools like get_devices or get_cost_recommendations, though it doesn't explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it's for retrieving idle/underutilized cloud resources, and the parenthetical ties it to cost recommendation categories, which hints at a cost-optimization workflow. However, it doesn't explicitly state when to use this tool versus alternatives like get_cost_recommendations or get_cost_recommendation, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integrationARead-onlyIdempotent
Get a specific integration's full definition. Field set depends on integration type; password/OAuth secret fields are masked.
| Name | Required | Description | Default |
|---|---|---|---|
| integration_id | Yes | Integration ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, openWorldHint, idempotentHint, and destructiveHint annotations, the description adds genuinely useful behavioral detail: the response's field set varies by integration type, and password/OAuth secret fields are masked. This helps an agent set expectations about non-uniform responses and sensitive data handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, and the key facts are front-loaded: what the tool returns, then the type-dependent field caveat and masking behavior. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with one required parameter and strong annotations, the description is nearly complete. It names the resource, notes variable fields, and discloses masking behavior. Since there is no output schema, a bit more detail about response shape or error behavior would improve it, but the current description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter integration_id is already documented as 'Integration ID.' The description adds only the framing that it is 'a specific' integration, which does not materially enhance parameter semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a specific integration's full definition.' It clearly distinguishes this from the plural get_integrations and from integration mutation tools like create_http_integration or delete_integration. The note that field set depends on integration type adds useful precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'specific' clearly signals a by-ID lookup for one integration, which is the correct time to use this instead of get_integrations or create/update/delete tools. It does not explicitly name alternatives or exclusion conditions, but the context is clear enough for a simple get-by-id operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integrationsARead-onlyIdempotent
List LogicMonitor integrations (Custom HTTP Delivery, Slack, PagerDuty, etc.). Returns a short summary per integration.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| name_filter | No | Filter by integration name (supports wildcards). | |
| type_filter | No | Exact-match filter on the integration type, e.g. 'http' for Custom HTTP Delivery, 'slack-2', 'pagerduty'. Wildcards are not supported for type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds useful context by stating this is a listing operation and that the output is a short summary per integration, which is meaningful since there is no output schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences in one line, with the core action front-loaded and no filler. It conveys purpose, examples, and return shape efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with three fully documented optional parameters, the description provides adequate context: what it lists, example type values, and the summary nature of results. It could be slightly more complete by naming the fields in the summary or explicitly directing agents to get_integration for full details, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, name_filter, and type_filter are already documented. The description only adds examples of integration types (Slack, PagerDuty, etc.), which gives context for type_filter but does not materially expand param semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List LogicMonitor integrations') and the resource, with concrete examples of integration types. The plural 'List' and 'short summary per integration' distinguish it from the sibling get_integration, which is implied to return one detailed integration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'List' and 'short summary per integration': this is for browsing many integrations at a summary level, not for retrieving a single full integration. However, it does not explicitly say when to prefer this over get_integration or the create/update/delete siblings, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interface_metricsARead-onlyIdempotent
Pull interface-level metrics (in/out bytes, errors, discards, utilization, status) for a device's interface over a time window. Answers 'how is this port performing?' Resolves the Interface-family DataSource and the instance matching the interface name before fetching datapoints.
| Name | Required | Description | Default |
|---|---|---|---|
| metrics | No | Comma-separated datapoint names. Defaults to RxRate, TxRate, ErrorsIn, ErrorsOut, DiscardsIn, DiscardsOut, InterfaceStatus. | |
| device_id | Yes | Device ID | |
| interface | Yes | Interface name or substring (case-insensitive), e.g. 'Gi0/1', 'eth0' | |
| hours_back | No | Hours of history to pull (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful internal behavior—'Resolves the Interface-family DataSource and the instance matching the interface name'—which helps the agent understand how interface selection works. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action and metric scope are front-loaded, the user-intent gloss is economical, and the internal resolution detail is placed at the end where it adds context without obscuring the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With fully documented parameters and comprehensive safety annotations, the description gives an agent enough to select and invoke the tool correctly. It explains the metric scope, time window, and internal resolution step. The absence of an output schema is partially mitigated by the mention of 'datapoints' and the listed metric families.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with all four parameters described. The description adds some color by naming metric families and the interface-resolution behavior, but it does not substantially augment the schema. Baseline 3 is appropriate given the complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Pull interface-level metrics' for 'a device's interface over a time window.' It enumerates metric families and explicitly frames the tool as answering 'how is this port performing?', which clearly distinguishes it from list-oriented or service-level metric siblings like get_device_interfaces or get_trace_service_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear decision context by framing the use case as 'Answers how is this port performing?' This tells the agent when the tool is appropriate. It does not explicitly name alternatives or exclusions, but the intent is unambiguous within the large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_link_flapsARead-onlyIdempotent
Identify interfaces with repeated up/down transitions in a time window. Answers 'which ports are unstable?' Common causes: bad cable, duplex mismatch, bad SFP, PoE power cycling, WAN instability.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Scope to a device name (substring match) | |
| group_id | No | Scope to a device group | |
| hours_back | No | Lookback window in hours (default: 24) | |
| min_transitions | No | Minimum alert fires to qualify as flapping | |
| interface_pattern | No | Case-insensitive regex matching interface DataSource names | interface|interfaces|if-|port|ethernet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, read-only, open-world, idempotent call. The description adds that it scans a time window for repeated up/down transitions, which is core behavioral context. It does not disclose return format or aggregation details, but those are not strictly required given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the operation and the question it answers; the second adds diagnostic context. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no required params, full schema coverage, and clear annotations, an agent knows how to invoke this tool and what question it answers. The lack of an output schema is partly mitigated by the name and 'answers' framing, though return-field detail would improve completeness. Overall sufficient for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (device, group_id, hours_back, min_transitions, interface_pattern) is already documented with defaults. The description adds the high-level concept of flapping but no parameter-specific syntax beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Identify'), a target resource (interfaces with repeated up/down transitions), and a time window. The question 'which ports are unstable?' clarifies the tool's niche among many get_* siblings. This differentiates it from generic interface-listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear diagnostic scenario ('which ports are unstable?') and lists common root causes to suggest when this tool is relevant. It does not explicitly name alternatives or exclusions, so the agent must infer the boundary against siblings like get_device_interfaces or get_interface_metrics. Clear context but no explicit when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_login_auditBRead-onlyIdempotent
Get login/authentication audit logs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| username | No | Filter by username | |
| failed_only | No | Only failed logins | |
| success_only | No | Only successful logins |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no additional behavioral context, such as authentication requirements, rate limits, or what the logs contain. It is consistent with annotations but does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is entirely front-loaded and free of redundancy. It is appropriately sized for the tool's simplicity, containing no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must clarify what the tool returns, but it does not mention any details like the fields returned, default behavior (e.g., whether both successful and failed logs are returned by default), or pagination. Given the number of sibling audit tools, more context is needed for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, describing each parameter (limit, username, failed_only, success_only) with clear meanings. The description does not add any extra semantics beyond the schema, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'login/authentication audit logs', making the purpose unambiguous. However, it does not differentiate from closely named siblings like get_audit_logs or get_api_token_audit, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many other audit-related tools (e.g., get_audit_logs, get_change_audit). There is no mention of alternatives or conditions that would route an agent to this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsourceBRead-onlyIdempotent
Get details about a specific LogSource
| Name | Required | Description | Default |
|---|---|---|---|
| logsource_id | Yes | LogSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral detail beyond restating the purpose, such as response behavior, missing-ID handling, or permission requirements, providing little extra value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is appropriately front-loaded and efficient for a simple single-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with strong annotations and complete schema coverage, the description is minimally sufficient. However, there is no output schema and the description does not hint at what details are returned or how errors surface, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter, logsource_id, is adequately described as 'LogSource ID'. The tool description adds no additional meaning, but the baseline of 3 applies because the schema already carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('LogSource'), and 'specific' distinguishes it from plural siblings like get_logsources and get_device_logsources. It lacks an explicit named sibling comparison, but the singular scope makes the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_logsources, get_device_logsources, or export_logsource. The intended use is only implied by the name and singular phrasing; no exclusions or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsourcesCRead-onlyIdempotent
List LogSources
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~syslog,logType:EventLog | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context such as pagination, filtering, or response format. It contributes nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only two words. It is front-loaded and has no wasted language. While it lacks detail, it is not verbose or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five optional parameters and no output schema, the description is incomplete. It does not explain pagination behavior, return format, or the effect of filters. An agent would need to inspect the schema and possibly make assumptions about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (limit, filter, offset, name_filter, applies_to_filter) are already documented in the schema. The description provides no additional parameter meaning or usage hints, so it meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('LogSources'), making it clear what the tool does. It distinguishes from singular 'get_logsource' and device-specific variants, though it doesn't explicitly differentiate scope. It is not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_logsource, get_device_logsources, or export_logsource. The description gives no context about selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metric_anomaliesBRead-onlyIdempotent
Detect metric anomalies using z-score analysis. Identifies data points deviating significantly from the mean.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | Anomaly detection method (auto selects based on data distribution) | auto |
| device_id | Yes | Device ID | |
| threshold | No | Z-score threshold for anomaly detection (default: 2.0) | |
| datapoints | No | Comma-separated datapoint names (optional, all if omitted) | |
| hours_back | No | Hours to look back (default: 24) | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID (from get_device_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, non-destructive, idempotent nature of the call, so the description's burden is lower. It adds the z-score/mean-deviation interpretation but does not disclose behavior such as how multiple methods are selected or what shape the anomaly results take.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the primary action is the first phrase and the explanation is immediately valuable. The only minor flaw is that the z-score mention is not fully accurate for all schema methods, but the structure itself is excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter analysis tool with no output schema, the description is too thin: it never states what the caller receives (anomaly scores, timestamps, datapoint names) or how required IDs scope the computation. A sentence covering the return shape would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters are documented in the schema, so the description does not need to repeat them. It adds only a high-level connection between deviation-from-mean and threshold semantics, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the core operation ('detect metric anomalies') and a defining technique ('z-score analysis'), so an agent can tell it apart from data-retrieval tools like get_device_data. However, the z-score framing is narrower than the schema's full method enum (auto, iqr, mad), slightly under-specifying the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over siblings such as detect_change_points, forecast_metric, or compare_to_baseline. The only implied trigger is generic 'detect anomalies,' with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_netscanBRead-onlyIdempotent
Get details about a specific network scan
| Name | Required | Description | Default |
|---|---|---|---|
| netscan_id | Yes | Netscan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations fully cover the read-only, idempotent, non-destructive, and open-world behavior, so the description is not required to restate those. The description adds only the mild behavioral implication that a single scan's details are returned, but it does not disclose response shape, error behavior, or other nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded seven-word sentence with no filler, no repetition, and no unnecessary detail. It is optimally sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with strong annotations, this is nearly adequate, but the absence of an output schema means the agent cannot tell what 'details' will be returned. It also does not relate itself to get_netscans or run_netscan, leaving some ambiguity about the larger workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter with the description 'Netscan ID', which is clear and sufficient. The tool description adds no extra parameter-level meaning, but none is needed given the full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('network scan'), and 'specific' clearly signals single-object retrieval rather than listing all scans. This helps distinguish it from get_netscans, though it does not explicitly name the sibling or specify what 'details' include.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_netscans or run_netscan. The word 'specific' implies lookup by ID, but the description does not state when not to use it or which alternate tool handles other cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_netscansCRead-onlyIdempotent
List network scans
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond the annotations—it doesn't mention pagination, ordering, or whether the list includes all scans or only recent ones. With annotations covering the safety aspects, a 3 is appropriate since the description adds minimal value but doesn't contradict anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It's appropriately sized for a simple list operation. However, it could have used the space to add sibling differentiation or usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and full annotation coverage, the description is minimally adequate. However, it lacks any context about what a 'netscan' is, how results are ordered, or how this differs from get_netscan. Given the sibling ambiguity and no output schema, a bit more context would be valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—the only parameter 'limit' is described as 'Max results' in the schema. The description adds no additional meaning beyond what the schema already provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List network scans' uses a specific verb and resource, making the basic purpose clear. However, it does not distinguish this tool from its sibling 'get_netscan' (singular), which likely retrieves a single scan, nor from 'run_netscan' which initiates one. The plural form implies a list operation, but the description doesn't explicitly differentiate it from the singular sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_netscan or run_netscan. The description simply states what it does without any context about use cases, prerequisites, or exclusions. An agent would have to infer that this is for listing multiple scans rather than retrieving a specific one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_flowsBRead-onlyIdempotent
Get network flow data (NetFlow/sFlow)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| dest_ip | No | Filter by destination IP | |
| device_id | No | Device ID | |
| source_ip | No | Filter by source IP |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to restate those. It adds minor useful context by specifying NetFlow/sFlow protocols, but it does not disclose behaviors like result ordering, time-window assumptions, or whether filters are combinable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant wording or filler. It puts the core action and resource first, making it quick for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with fully documented parameters and strong annotations, the description is adequate. However, it lacks any mention of return value shape or pagination behavior, and with no output schema present, this leaves some ambiguity about what the agent should expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description adds no extra meaning about parameter semantics, resulting in the baseline score without further compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a clear verb ('Get') and resource ('network flow data'), with protocol details (NetFlow/sFlow) adding precision. It does not explicitly contrast itself with sibling data-retrieval tools like get_top_talkers or get_interface_metrics, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_top_talkers, get_interface_metrics, or audit_network_monitoring_coverage. The description only states what the tool retrieves, with no contextual conditions, exclusions, or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oidCRead-onlyIdempotent
Get details about a specific OID
| Name | Required | Description | Default |
|---|---|---|---|
| oid_id | Yes | OID ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this as read-only, idempotent, and non-destructive, which the description does not contradict. The description adds minimal behavioral context beyond 'get details', but given the strong annotation coverage, this is acceptable. It does not mention any edge cases or specific behaviors like error conditions, but the annotations carry the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is concise and front-loaded with the core purpose. No wasted words, though it could add a bit more value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and strong annotations, the description is minimally sufficient. However, it lacks any indication of the return format or typical usage context, which could help an agent confirm it's the right tool. Given the low complexity, this is a slight gap but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the parameter 'oid_id' is already documented. The description does not add any extra meaning beyond 'specific OID', which is redundant with the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get details about a specific OID'), which is sufficient for basic purpose clarity. However, it does not distinguish from the sibling 'get_oids' (plural), which likely lists OIDs, so the agent might not know which to choose for a particular need without more context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_oids' or other 'get' tools. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer based on the single parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oidsBRead-onlyIdempotent
List OID definitions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| oid_filter | No | Filter by OID (substring) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context (e.g., return format, pagination) but does not contradict the annotations. It meets the minimum bar given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence with no extraneous words. It is front-loaded with the core action and resource. Perfectly concise for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two optional parameters and no output schema, the description is adequate. It states the core function, and the schema covers parameter details. It could mention that it returns a list, but that is implied by 'List'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and oid_filter) are fully described in the schema. The description adds no additional meaning beyond what the schema provides, matching the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and a resource ('OID definitions'). It clearly implies a listing operation, and the plural 'definitions' distinguishes it from the singular sibling get_oid. However, it does not explicitly call out the alternative, so it relies on the plural/singular contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_oid, nor any mention of filtering or pagination. The description simply states the action without context on appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ops_noteBRead-onlyIdempotent
Get details about a specific ops note
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Ops note ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond stating it retrieves details, which is consistent with the annotations. It does not contradict them, but also provides no extra context such as return format or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste. It immediately conveys the action and resource without padding, which is ideal for quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID operation with annotations covering safety, this description is largely complete. It states the purpose, and the parameter is clear. It does not specify the return payload or error handling, but given no output schema and the trivial nature of the call, it is sufficient for an agent to invoke correctly. It slightly lacks explicit mention that it returns the full note object, but that is implied by 'details'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter (note_id) with a description 'Ops note ID'. The tool description adds no additional meaning or usage nuance beyond what the schema already provides. Baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('get') and resource ('ops note'), and qualifies it as 'specific', distinguishing it from the sibling get_ops_notes. It does not explicitly mention the note_id parameter, but the schema fills that gap, so purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_ops_notes, add_ops_note, or update_ops_note. It neither states a selection criterion nor mentions any exclusions. The distinction from get_ops_notes is only implied by the word 'specific', which an agent may or may not infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ops_notesCRead-onlyIdempotent
List ops notes
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the annotations, such as pagination behavior, ordering, or whether the list is filtered by any implicit scope. With annotations covering the core safety traits, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately sized for a simple list operation, though it could have added a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with one optional parameter and no output schema, the description is minimal but not entirely inadequate. However, it lacks any context about what ops notes are, how results are ordered, or how this relates to the singular get_ops_note sibling, which an agent would need to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'limit' parameter, which is documented as 'Max results'. The description adds no additional meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List ops notes' uses a specific verb and resource, making the basic purpose clear. However, it does not distinguish this from the sibling tool 'get_ops_note' (singular) or clarify what an 'ops note' is in this context, so an agent could confuse the list operation with the single-fetch operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_ops_note or add_ops_note. The description does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_otlp_label_valuesARead-onlyIdempotent
[PREVIEW] List values observed for one native OTLP metric label (e.g. all service_name values)
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Window end, unix epoch seconds | |
| key | Yes | Label name to list values for, e.g. service_name; discover names with get_otlp_metric_labels | |
| limit | No | Max results | |
| start | No | Window start, unix epoch seconds | |
| metric | No | Narrow to values present on this metric name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only and idempotent behavior, so the description only needs to add extra context; it does add [PREVIEW] status and 'observed' to signal the result set is data-dependent and possibly incomplete. It does not describe return format, default time-window behavior, or pagination, and there is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with an illustrative example and no filler. It does not repeat schema details or annotation flags.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only list operation, the definition and schema together give enough to invoke it correctly: resource, example, and all parameter descriptions. It leaves minor ambiguity about output shape and behavior when start/end are omitted, which prevents a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains key, start, end, limit, and metric, including the label-name discovery hint on key. The one-line tool description does not add parameter-level meaning beyond the example service_name, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it lists values observed for one native OTLP metric label, with service_name as an example. This clearly distinguishes it from the sibling get_otlp_metric_labels, which discovers label names rather than their values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear: get value options for a single OTLP label. The key parameter schema also routes the agent to get_otlp_metric_labels for discovering label names, which is useful sibling guidance, though the description itself does not make when-not or alternatives explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_otlp_metric_labelsBRead-onlyIdempotent
[PREVIEW] List label names on native OTLP metrics, optionally narrowed to one metric
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Window end, unix epoch seconds | |
| limit | No | Max results | |
| start | No | Window start, unix epoch seconds | |
| metric | No | Narrow to labels present on this metric name | |
| label_name | No | Substring filter on label names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the '[PREVIEW]' status and the optional metric-narrowing behavior, but no further behavioral context such as response shape or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the core purpose, includes the preview caveat, and expresses the optional narrowing behavior efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with fully documented optional parameters and no output schema, the description plus schema is largely sufficient. It could mention the exact return shape, but the tool name and 'List label names' make the output reasonably inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters documented. The description does not add parameter-level detail, but it does not need to because the schema already carries that burden; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('label names on native OTLP metrics'), with an optional narrowing condition. It is clear enough to differentiate from get_otlp_metric_names and get_otlp_label_values, but it does not explicitly mention those sibling distinctions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related tools such as get_otlp_label_values or query_otlp_metrics. The only usage hint is the optional metric-narrowing phrase, which is more of a parameter detail than a selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_otlp_metric_namesARead-onlyIdempotent
[PREVIEW] List metric names ingested via native OpenTelemetry (OTLP). Requires the OTLP Metrics feature flag; returns a friendly notice when unavailable
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Window end, unix epoch seconds | |
| limit | No | Max results | |
| start | No | Window start, unix epoch seconds | |
| contains | No | Substring filter on metric names (wildcards unsupported) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by noting the feature flag requirement and the friendly notice when unavailable, which is behavioral context beyond the annotations. It doesn't describe pagination or return format, but the annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose ('List metric names'), then adds the key prerequisite (feature flag) and behavior (friendly notice). Every word earns its place, and the [PREVIEW] tag is appropriately placed at the start.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 100% schema coverage and no output schema, the description covers the essential context: what it does, the feature flag requirement, and the unavailable behavior. It doesn't mention pagination or result ordering, but these are minor gaps given the tool's simplicity and the annotations covering safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (end, limit, start, contains) are already documented in the schema. The description doesn't add parameter-level detail beyond what the schema provides, which is acceptable given the high coverage. The baseline of 3 applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists metric names ingested via native OpenTelemetry (OTLP), with a specific verb ('List') and resource ('metric names'). It distinguishes itself from sibling tools like get_otlp_metric_labels, get_otlp_label_values, and query_otlp_metrics by focusing on metric names specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the OTLP Metrics feature flag requirement, which is a clear prerequisite for using this tool. It doesn't explicitly name alternatives or when-not-to-use conditions, but the '[PREVIEW]' tag and feature flag note provide useful context. The sibling list includes related OTLP tools, but the description doesn't explicitly route between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_power_eventsARead-onlyIdempotent
Filter alerts for UPS/PDU power-event signatures across APC, Liebert, and Eaton DataSources ('on battery', 'runtime remaining', 'input voltage lost') over a time window. Returns events matched by DataSource or alert name substring with counts per pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Scope to a device name (substring match) | |
| group_id | No | Scope to a device group | |
| patterns | No | Override default patterns. Default covers UPS, PDU, APC, Liebert, Eaton, Battery, PowerSupply, Power_. | |
| severity | No | Filter by severity | |
| hours_back | No | Lookback window in hours (default: 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false), so the description does not need to repeat that. It adds useful behavioral detail: matching by DataSource or alert name substring, returning counts per pattern, and default pattern coverage. It omits pagination/limits but that is a minor gap given the strong annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the core purpose and includes concrete example patterns; the second explains the matching and return behavior. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 5 optional parameters and no output schema, the description adequately covers the filtering scope, matching mechanism, and return summary ('counts per pattern'). It could be slightly clearer about how device/group scoping interacts with patterns, but overall it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 5 parameters, so the baseline is 3. The description's references to 'time window' and vendor/pattern names align with hours_back and patterns but do not add new parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing ('Filter alerts for UPS/PDU power-event signatures'), names target vendors (APC, Liebert, Eaton), gives concrete example patterns ('on battery', 'runtime remaining', 'input voltage lost'), and states the return shape ('counts per pattern'). This clearly distinguishes it from generic alert tools like get_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied clearly: use this when you need power-event signatures from UPS/PDU data sources over a time window. However, it does not explicitly name alternatives (e.g., get_alerts for general alert queries) or state when not to use this tool, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_propertysourceARead-onlyIdempotent
Get details about a specific PropertySource
| Name | Required | Description | Default |
|---|---|---|---|
| propertysource_id | Yes | PropertySource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds no behavioral context beyond restating the action, such as return format or error behavior. Since annotations cover safety, the description adds minimal value here but doesn't contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the core purpose and is appropriately sized for a tool with one parameter and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter and no output schema, the description is minimal but adequate. It doesn't mention what 'details' includes or behavior for missing IDs, but given the simplicity, an agent can likely infer the call. Could be improved by noting it returns the full PropertySource object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single parameter propertysource_id is fully documented in the schema. The description adds no additional parameter context, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and resource 'PropertySource', clearly indicating it retrieves details for a single entity. It distinguishes from plural sibling get_propertysources by implying a specific instance, though it doesn't explicitly mention the ID parameter or contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent should use this tool when it has a specific PropertySource ID and needs details. However, there is no explicit guidance on when to use this over get_propertysources or other get tools, and no exclusion or alternative is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_propertysourcesCRead-onlyIdempotent
List PropertySources
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~Linux,technology:script | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already declare. Annotations indicate this is read-only, idempotent, non-destructive, and open-world, but the description does not mention pagination behavior, result bounds, or whether disabled/hidden PropertySources are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is undeniably short and front-loaded with no fluff. However, it under-specifies rather than being merely concise, since it provides no scope, filter guidance, or differentiation from related tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and five filter/pagination parameters, the description is too thin to fully contextualize the tool. It does not describe the return shape, the meaning of a PropertySource in this domain, or how the list relates to the singular `get_propertysource` tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description, including an example for `filter`. The tool description adds no parameter-level insight, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('List') and a resource ('PropertySources'), so it is recognizable as a list operation. However, it mostly restates the tool name and does not clarify what a PropertySource is or how this differs from the singular `get_propertysource` sibling, leaving the purpose minimally informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus `get_propertysource` or the create/update/delete/import PropertySource tools. It also does not explain when the filter parameters should be used versus the simpler name filter, so an agent gets no selection or invocation guidance from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recipient_groupBRead-onlyIdempotent
Get details about a specific recipient group
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Recipient group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the description adds no new behavioral information. It does not disclose anything about return format, pagination, permissions, or error behavior. Given the annotations cover the safety profile, the description adds little beyond confirming it is a read operation. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence with no unnecessary words. The purpose is front-loaded, and there is no redundant filler. It is efficiently written and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description is minimal but functionally adequate. It could benefit from mentioning what the returned details include or the fact that it requires an existing group_id. However, given the simplicity, the description is mostly complete, though slightly thin on contextual value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'group_id' with description 'Recipient group ID'. The description does not add any additional meaning beyond the schema; it provides no example, format specificity, or context on how to obtain the ID. Baseline 3 is appropriate as schema covers the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details about a specific recipient group' clearly states the verb and resource, indicating a read operation for a single group. It distinguishes itself from 'get_recipient_groups' (plural) and 'update_recipient_group' among siblings. However, it is generic and could apply to any 'get' tool, lacking specificity about what details are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single group, but does not explicitly state when to use it versus alternatives like 'get_recipient_groups' for listing all groups. It does not mention any prerequisites (e.g., need group_id) or conditions that would make it preferable over similar tools. Basic context is clear but no explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recipient_groupsBRead-onlyIdempotent
List recipient groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| detail | No | When true, fetch each group's full recipient list via an extra GET per group. Off by default to avoid N+1 API calls. | |
| name_filter | No | Filter by group name (supports wildcards) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the operation is clearly safe and read-only. The description adds no behavioral context beyond that, such as pagination behavior, default limits, or the extra per-group API calls implied by the detail parameter. No contradiction exists, but no additional transparency is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded, clear phrase with no filler. It communicates the essential action and resource in four words, earning its place and avoiding unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the schema and annotations compensate for much of the missing context: all parameters are documented and the operation is marked safe. However, there is no output schema, and the description does not describe return shape, ordering, or when to use the detail flag. The definition is adequate but leaves some invocation context implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters and even includes useful semantic notes, such as the N+1 API call behavior for detail and the default value for limit. The description itself adds nothing about parameters, so the baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List recipient groups'. The plural 'groups' helps distinguish it from the sibling get_recipient_group, and the verb 'list' implies collection retrieval. However, it does not explicitly describe scope or contrast with the singular getter, so it is clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus get_recipient_group, create_recipient_group, or other sibling tools. It also does not mention when the detail flag or name_filter should be used. The agent must infer usage entirely from the tool name and parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_referenceARead-onlyIdempotent
Get LogicMonitor reference content (schemas, enums, filter syntax, guides). Mirrors content from MCP Resources for clients without full Resource support (Copilot cloud agent, OpenAI Codex, Cline). Categories: schema, enums, filters, syntax, guide. Pass list=true (or omit both category and name) to discover all available (category, name) pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | If true, return the available (category, name) pairs instead of content | |
| name | No | Resource name within the category (e.g., 'alerts', 'operators') | |
| category | No | Reference category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds useful behavioral context beyond those flags: it is a mirror of MCP Resources, and omitting both category and name triggers the listing behavior. This gives an agent the operational expectations without repeating the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: the first defines what the tool returns, the second gives the compatibility rationale, and the third explains the two discovery modes. Front-loaded with the verb and object, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with rich annotations and fully documented optional parameters, the description covers the main invocation paths and even the no-arguments fallback. It lacks an explicit statement about what happens if only category or only name is passed, and no output schema exists to fill that gap, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics on top: it explains that list=true or omitting both optional parameters returns (category, name) pairs, and gives concrete examples like 'alerts' and 'operators' for the name parameter. The only ambiguity is the behavior when exactly one of category/name is supplied, which prevents a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and object ('Get LogicMonitor reference content') and enumerates the categories (schemas, enums, filters, syntax, guide), making the tool's scope unmistakable. The additional note that it mirrors MCP Resources distinguishes it from data-facing siblings like get_datasource or get_device, which fetch operational data rather than reference material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use condition: use this tool when the client lacks full MCP Resource support (Copilot cloud agent, OpenAI Codex, Cline). It also explains the list-vs-content invocation modes. It stops short of explicitly naming when not to use it or contrasting with a sibling tool, so it loses one point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_remediationsourceARead-onlyIdempotent
Get details about a specific RemediationSource including the Groovy script
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | RemediationSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds that the response includes the Groovy script, which is useful context about the return content, but it does not describe any other behavioral traits or limitations. With annotations carrying the safety expectations, this is adequate but not over-communicative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and a key detail of the response. It contains no filler or redundancy and reads naturally, earning its place with every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and annotations covering safety, the description is sufficient: it states what is returned (details including the Groovy script) and implies a single resource. It does not mention error cases or exact response structure, which could be useful but is not strictly necessary given the simplicity. Overall, it is complete enough for an agent to call effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a description for source_id ('RemediationSource ID') with 100% coverage, so the baseline is 3. The tool description only refers to 'a specific RemediationSource' and adds no meaningful semantics beyond what the schema conveys. No additional format, source, or constraints are described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource ('Get details about a specific RemediationSource') and highlights a distinctive content element ('including the Groovy script'). This distinguishes it from list (get_remediationsources) and mutation (create/update/delete) siblings, so an agent can tell exactly what it does without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single RemediationSource by ID, but it does not explicitly state when to use it over alternatives like get_remediationsources or how it relates to export_remediationsource. No exclusions or alternative mentions are provided, so the guidance is implied 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.
get_remediationsourcesCRead-onlyIdempotent
List RemediationSources from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum sources to return (default: 50) | |
| filter | No | Raw LM filter expression (overrides typed filters). Operators: : (eq), !: (neq), ~ (contains), !~ (not contains). | |
| offset | No | Results to skip for pagination (default: 0) | |
| name_filter | No | Filter by source name (substring, server-side) | |
| group_filter | No | Filter by group (substring, server-side) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, but the description adds no behavioral context beyond the verb 'List'. It does not mention pagination, default limits, filtering behavior, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It is concise, though it may be too terse to be maximally useful on its own.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five optional parameters and no output schema, the description is too sparse. It does not explain what RemediationSources are, what the response contains, or how this list operation relates to the many sibling remediation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all five parameters, so the baseline is 3. The tool description itself contributes no additional parameter meaning, but the schema already covers this dimension adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'List RemediationSources'. The plural resource name distinguishes it from the singular get_remediationsource sibling, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus related alternatives such as get_remediationsource, export_remediationsource, or execute_remediation. The context is left entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportBRead-onlyIdempotent
Get detailed information about a specific report
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | Report ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds little beyond 'detailed information' and provides no additional behavioral context such as scope, response nature, or authorization. It is consistent with annotations, but does not meaningfully enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no wasted words. It states the core purpose immediately and avoids repeating the tool name or schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read-only getter, the description is minimally adequate: it names the operation, scope, and safety profile via annotations. However, it doesn't clarify what 'detailed information' includes or how this differs from related report tools like get_report_execution, get_scheduled_reports, or run_report, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single report_id parameter is described in the schema. The description's 'specific report' loosely aligns with the parameter but adds no syntax, format, or semantic detail beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get') and resource ('a specific report'), and the singular phrasing distinguishes it from list-oriented siblings like get_reports and get_report_groups. It does not explicitly contrast those siblings, but the 'specific' qualifier conveys the per-ID granularity well enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the agent needs details about one known report, but it provides no explicit when-to-use guidance or alternatives. It doesn't mention that get_reports should be used for listing or that report execution details belong to get_report_execution, so the routing burden falls on the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_executionARead-onlyIdempotent
Poll the status of a report generation task started by run_report (returns status and result URL when finished)
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID returned by run_report | |
| report_id | Yes | Report ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond annotations by stating that it returns status and provides a result URL when finished. This tells the agent what to expect from the polling cycle, though it does not describe error behavior or status value ranges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the primary action (poll status) and the key output (result URL when finished). Every word earns its place, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 params, no output schema, annotations cover safety), the description is nearly sufficient. It explains what the tool does and what it returns on completion. A slight gap is the lack of detail about the interim status values or error handling, but the word 'poll' implies repeated calls, and annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (task_id and report_id) are already documented. The description only reinforces that task_id comes from run_report, which the schema already states. It adds no new semantic detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Poll') and resource ('status of a report generation task'), and explicitly names the initiating tool 'run_report'. This clearly distinguishes it from its siblings, especially 'run_report' which starts the task, and 'get_report' which would fetch a completed report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the usage context: poll tasks started by run_report. It implies the agent should call this after run_report and repeat until finished. However, it does not explicitly name alternatives or state when NOT to use this tool (e.g., when you only need an existing report, use get_report).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_groupsCRead-onlyIdempotent
List report groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| name_filter | No | Filter by name (substring) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the annotations, such as pagination behavior, ordering, or whether the result is hierarchical. With annotations covering the core safety traits, a 3 is appropriate because the description adds no extra behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. It is appropriately concise, though it could have used the space to add distinguishing context. It is not verbose, so it earns a 4 for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no usage guidance, the description is thin. An agent cannot tell what a report group is, how it differs from reports, or what the response will look like. The annotations cover safety but not semantics. Given the large sibling set and the ambiguity of 'report groups', this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and name_filter) are already documented in the schema. The description adds no additional meaning beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List report groups' states a clear verb and resource, but it does not distinguish this from sibling tools like get_reports, get_report, get_scheduled_reports, or get_dashboard_groups. It is minimally clear but lacks specificity about what a 'report group' is or how it relates to other report-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools (get_reports, get_report, get_scheduled_reports, run_report), an agent has no way to know if this is the right tool for listing report categories versus individual reports. The description gives no context about typical use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportsCRead-onlyIdempotent
List reports from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~monthly,type~Alert | |
| offset | No | Pagination offset | |
| group_id | No | Filter by group ID | |
| name_filter | No | Filter by name (substring) | |
| report_type | No | Filter by type | |
| include_nextgen | No | Include NextGen reports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. However, the description adds no additional behavioral context—e.g., return format, filtering semantics, or pagination implications—beyond the raw 'list' operation. With annotations present, the bar is lower, but description adds zero value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It directly states the action and resource. While minimal, it is appropriately concise for a simple list operation and contains no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 filter parameters and no output schema, the one-line description is insufficient. It does not clarify what information is returned (e.g., report metadata, fields), the effect of combining filters, or default behavior (e.g., whether all reports are returned or only accessible ones). The agent is left to deduce these from parameter names and sibling tools, which is incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 7 parameters (limit, filter, offset, group_id, name_filter, report_type, include_nextgen) are already documented with meaningful descriptions. The tool description adds no extra parameter semantics, but the baseline of 3 applies because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List reports from LogicMonitor' uses a specific verb (List) and resource (reports), making the primary purpose clear. It differentiates from the singular 'get_report' sibling by indicating a plural collection, though it does not explicitly name any alternative or scope conditions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings like 'get_report', 'get_report_groups', or 'get_scheduled_reports'. No when-not conditions or alternative references are provided, leaving the agent to infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_roleARead-onlyIdempotent
Get details about a specific role
| Name | Required | Description | Default |
|---|---|---|---|
| role_id | Yes | Role ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond 'get details' — no mention of response shape, permissions, or error cases. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero waste. The verb and resource are front-loaded, and there is no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with full annotation coverage and 100% schema coverage, the description is nearly complete. It doesn't describe the return value, but no output schema exists and the tool name plus description make the purpose clear. A 4 is appropriate; a 5 would require some explicit statement of what 'details' includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the only parameter, role_id, is documented as 'Role ID' in the schema. The description adds no additional meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details about a specific role' clearly states the verb (get) and resource (role), and the singular 'specific role' distinguishes it from the sibling get_roles. It doesn't enumerate what details are returned, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call when you need details about one role, identified by role_id. It doesn't explicitly contrast with get_roles or other list tools, but the singular phrasing and sibling set make the intended context reasonably clear. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rolesBRead-onlyIdempotent
List roles
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides name_filter). Example: name~admin,twoFARequired:true | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by role name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond 'list' – no mention of pagination behavior, default limits, or that filter overrides name_filter. With annotations covering the core safety traits, a 3 is appropriate since the description adds minimal behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple list operation, though it could arguably include a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and safety annotations, the description is mostly adequate. However, it doesn't mention the relationship between filter and name_filter (that filter overrides name_filter), which is a behavioral detail an agent would need to know. The lack of an output schema means the description could have noted what fields are returned, but this is a minor gap for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (limit, filter, offset, name_filter) are already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List roles' clearly identifies the verb (list) and resource (roles), which is sufficient to distinguish it from the sibling get_role (singular) and get_users (different resource). However, it doesn't specify any scope or context beyond the resource name, so it's clear but minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving role data, and the sibling get_role suggests this is the plural/list variant. However, there's no explicit guidance on when to use this vs get_role, nor any mention of pagination or filtering strategies. The context is implied by the resource name and sibling structure rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduled_downtime_jobsCRead-onlyIdempotent
Get batch jobs related to SDT automation
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to repeat those. However, it does not disclose what the tool actually returns (e.g., a list of scheduled downtime jobs) or any other behavioral traits. The phrase 'SDT automation' is unclear and adds little beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, which is concise, but it is under-specified. It fails to convey the tool's purpose clearly, so brevity does not add value here. The sentence is not front-loaded with the most critical information because the core function remains ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what the tool returns, but it does not. It also does not differentiate from many sibling get_* tools. Given the ambiguity around 'SDT automation' and the lack of output details, the description is incomplete for an agent to correctly select and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'limit' parameter with a description ('Max results'), so the schema carries the full burden. The description adds no additional parameter context, but with 100% coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Get') and a resource ('batch jobs related to SDT automation'), but 'related to SDT automation' is vague and ambiguous. It does not clearly specify that this returns scheduled downtime jobs, nor does it distinguish from get_batchjobs or get_device_batchjobs. It is not a tautology but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_batchjobs, get_batchjob, or get_device_batchjobs. No exclusions or context are provided, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduled_reportsBRead-onlyIdempotent
Get reports with schedules configured
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| enabled_only | No | Only enabled schedules | |
| include_nextgen | No | Include NextGen reports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is well covered structurally. The description adds no additional behavioral context such as pagination, authentication, or result shape, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant clauses. It is appropriately sized for a simple read-only list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and fully documented optional parameters cover most invocation requirements for a simple read-only tool. However, there is no output schema and the description does not clarify the return shape or how this differs from get_reports, leaving moderate context gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (limit, enabled_only, include_nextgen) have descriptions in the schema, so schema coverage is 100%. The description adds no parameter detail beyond the schema, which is acceptable at the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb and resource clearly ('Get reports') and narrows the scope with 'with schedules configured', distinguishing it from generic report tools like get_reports. It does not explicitly name a sibling, but the qualifier gives enough purpose differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_reports, get_report, or update_report_schedule. The only usage signal is implied by the resource qualifier, with no explicit conditions, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceARead-onlyIdempotent
Get details about a specific Service Insight service
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service device ID (deviceType 6) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the operation is read-only, idempotent, and non-destructive, which lowers the burden on the description. The description adds only the scope note that this covers a specific Service Insight service and does not describe return format, error behavior, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. The key scope ('specific') is placed before the resource, making the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only getter, the description plus schema supplies enough information to invoke the call correctly. The absence of an output schema is not a major gap here, though a hint about the returned details would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents service_id and its type, and schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource, stating the tool retrieves details for a single Service Insight service. It distinguishes itself from get_services by emphasizing 'specific,' but it does not explicitly contrast itself with the plural sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The wording implies a singular lookup use case rather than a listing operation, but it does not state when to choose this over get_services or other alternative tools. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_groupsARead-onlyIdempotent
List Service Insight service groups (BizService device groups)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| name_filter | No | Filter by group name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful scoping context ('BizService device groups') beyond the structured data, clarifying the exact domain. It does not contradict annotations and provides enough behavioral context for a simple 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It states the action, resource, and scoping qualifier efficiently. This is an example of tight, purposeful writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters, the combination of schema, annotations, and description is sufficient. Annotations cover safety, schema covers parameters, and the description names the resource. The lack of an output schema is acceptable since return value details are not essential for a basic list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit, name_filter) are fully documented in structured data. The description adds no additional parameter details, which is acceptable given the schema coverage. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('Service Insight service groups'), and the parenthetical 'BizService device groups' clarifies the type of group, helping distinguish it from generic device groups. However, it does not explicitly differentiate from siblings like get_services or get_device_groups, so it falls short of full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other list tools in the large sibling set. It only states what it does, leaving the agent to infer usage. Given the many similar list tools (e.g., get_device_groups, get_services), explicit when-to-use or alternative routing would be valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesBRead-onlyIdempotent
List Service Insight business services (deviceType 6 devices, including APM trace services)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| name_filter | No | Filter by service name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful scoping detail (deviceType 6, APM trace services) but does not disclose behaviors like pagination, ordering, or result size limits beyond the schema's default value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with a clear leading verb and no filler. Every word earns its place, and the domain qualifier is compactly integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only list operation with two optional, fully documented parameters and safety annotations, the description is nearly sufficient. The only notable omission is an explicit pointer to the overlapping get_trace_services sibling, which would improve routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both limit and name_filter are documented in the schema. The description adds no parameter-specific meaning, so it does not exceed the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('List Service Insight business services') and adds scope detail ('deviceType 6 devices, including APM trace services'). It is clear enough to distinguish from get_service (single service) and get_service_groups, though it does not explicitly clarify its relationship to the similarly named get_trace_services sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_trace_services or get_service. The phrase 'including APM trace services' hints at coverage but does not state exclusions or route agents to a more specialized sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_contextARead-onlyIdempotent
Get current session context (last results, variables, history)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds useful context about what is included in the session state but does not disclose additional behavioral traits such as session expiration, emptiness behavior, or interaction with clear_session_context. This is acceptable but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action ('Get current session context') and immediately clarifies scope with a parenthetical. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only, idempotent tool, this description is complete: it names the resource, lists the three categories of returned state, and relies on annotations for safety semantics. No output schema exists, but the parenthetical gives enough expectation about the return content for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to document. The baseline for a no-parameter tool is 4, and the description appropriately focuses on what the tool returns rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get current session context' and expands it with the exact contents returned: 'last results, variables, history'. This clearly distinguishes the tool from sibling tools like get_session_variable and list_session_history, which target narrower slices of the same state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: call this when you need the overall session context, including results, variables, and history. It does not explicitly say when not to use it or name alternatives, but for a no-parameter read-only tool the contextual cue is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_variableBRead-onlyIdempotent
Get a user-defined session variable
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey readOnly, idempotent, and non-destructive behavior, so the description does not need to restate those. It adds the scoping context of 'user-defined' but does not disclose behavior for missing variables or how session variables relate to the broader session context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It is front-loaded and contains exactly the necessary purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only getter, the description combined with the schema and annotations is largely sufficient. It does not explain return behavior for missing variables, but this is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'name' parameter with a clear description, giving 100% schema coverage. The tool description adds little beyond the schema, so it meets the baseline but does not enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: retrieving a user-defined session variable. It is specific enough about the resource, though it does not explicitly differentiate from sibling tools like get_session_context or set_session_variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as set_session_variable, delete_session_variable, or get_session_context. The description only states what the tool does without any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topology_mapCRead-onlyIdempotent
Get network topology map data
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| device_group_id | No | Filter by device group ID | |
| include_connections | No | Include connection data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context—it doesn't explain what the topology map contains, how include_connections affects output, or whether results are paginated. For a read-only tool, this leaves the return format and interpretation entirely unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no fluff, front-loaded with the purpose. It's concise and efficient, though the brevity borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no description of the returned data structure or filtering behavior, the description is too thin. An agent cannot infer what 'topology map data' entails or how to interpret the response, making the tool underdocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – all three parameters (limit, device_group_id, include_connections) have descriptions. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Get network topology map data'. It's distinct from siblings like get_topologysources or get_device_connections, though it's somewhat generic and doesn't elaborate on what the map contains. Still, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_topologysources, get_device_neighbors, or get_graph_data. No context or exclusions provided, leaving the agent to guess which tool fits a scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topologysourceCRead-onlyIdempotent
Get details about a specific TopologySource
| Name | Required | Description | Default |
|---|---|---|---|
| topologysource_id | Yes | TopologySource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, so the description does not need to state safety. However, the description does not disclose any additional behavior such as the return format, whether the TopologySource is a complex object, or any dependent data. It adds nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no wasted words. It is appropriately short, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that returns details (likely a rich object), the description is insufficient. There is no output schema, no explanation of what 'details' include, nor any reference to related resources. An agent may not know what to expect in the response, which is a significant gap given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the 'topologysource_id' parameter (100% coverage), so the description need not provide additional detail. The baseline of 3 is appropriate because the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves details about a specific TopologySource, which is clear, but it does not distinguish it from the sibling tool 'get_topologysources' (plural) which likely lists all. The use of 'details' is generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_topologysources' or how it relates to other topology-related tools. The context implies it is for retrieving a single item by ID, but this is 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_topologysourcesCRead-onlyIdempotent
List TopologySources
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~Network,technology:snmp | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by name (substring) | |
| applies_to_filter | No | Filter by appliesTo expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, but the description adds no behavioral context of its own, such as pagination behavior, default limits, result shape, or how the filter parameters interact. It does not contradict the annotations, but it contributes nothing beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler, making it efficient and easy to parse. It is somewhat sparse but appropriate for a straightforward listing operation whose parameters are already documented in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover parameter semantics and safety, but the description lacks operation-level context such as how the listing relates to the singular get_topologysource sibling or what the response contains. With no output schema, some important context is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters are fully documented in the input schema, including defaults, a raw filter example, and override semantics, so the baseline is 3. The description itself mentions no parameters and adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('TopologySources'), so an agent can identify this as a collection-listing operation. It does not go beyond the name to specify scope or explicitly call out the singular get_topologysource sibling, so it stops short of a top-tier distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus get_topologysource for a single item or versus the create/update/delete topology-source tools. 'List' weakly implies a collection operation, but there are no explicit usage conditions, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_talkersARead-onlyIdempotent
Rank NetFlow flows on an exporter by bandwidth, packets, or flow count. Group by source IP, destination IP, protocol, application, or source->destination pair. Answers 'what is consuming my WAN?'
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of top entries to return (default: 10) | |
| group_by | No | Aggregation dimension | src_ip |
| min_bytes | No | Drop aggregated entries below this byte threshold | |
| hours_back | No | Time window to aggregate (default: 1 hour) | |
| exporter_device_id | Yes | NetFlow exporter device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior, so the description only needs to add operational semantics. It adds ranking basis, grouping keys, and per-exporter scope, which are not visible in annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The primary action is front-loaded, grouping follows, and the use-case tagline closes the description efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema, the description leaves unclear how the ranking metric is chosen and what the result shape looks like. The purpose is well covered, but the missing metric-control and output expectations make it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3, but the description introduces ranking metrics (bandwidth, packets, flow count) that have no corresponding parameter in the schema. An agent cannot determine how to select a metric, making the description confusing rather than clarifying.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Rank'), a specific resource ('NetFlow flows on an exporter'), and concrete ranking metrics (bandwidth, packets, flow count). It also enumerates grouping dimensions, clearly distinguishing this from raw-flow tools like get_network_flows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing question, 'Answers what is consuming my WAN?', provides an explicit triggering use-case. It does not name alternative tools or give when-not-to-use guidance, but the context is clear enough to route an agent to this tool for top-talker analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_operation_metricsARead-onlyIdempotent
Get per-operation RED metrics (Duration, ErrorOperationCount, OperationCount)
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End time in epoch seconds | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| service_id | Yes | APM service device ID | |
| start_time | No | Start time in epoch seconds | |
| instance_id | Yes | Operation instance ID | |
| device_datasource_id | Yes | Device datasource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds a little context by naming the return metric fields, but it does not disclose behavior such as time range handling, defaults, or response shape. With these annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise, front-loaded sentence with no filler. Every word contributes: the verb, the per-operation scope, the RED metrics concept, and the specific metric names. No redundant or vague phrasing exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with 100% schema parameter coverage, the description is largely complete. It clarifies the return metric fields, which is important given no output schema is available. Minor gaps remain, such as the exact response shape and units for Duration, but these are not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all six parameters already have descriptions in the schema, including defaults for datapoints. The description adds no parameter-level information beyond the metric names it exposes, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), resource ('per-operation RED metrics'), and lists the exact metric names (Duration, ErrorOperationCount, OperationCount). This differentiates it from sibling tools like get_trace_service_metrics, which targets service-level metrics rather than per-operation metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'per-operation RED metrics' implies this tool is appropriate when per-operation metrics are needed, and the naming contrasts with get_trace_service_metrics. However, the description does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_operationsARead-onlyIdempotent
List operations (endpoints/routes) for an APM service datasource
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| service_id | Yes | APM service device ID | |
| name_filter | No | Filter by operation name (substring match) | |
| device_datasource_id | Yes | Device datasource ID (from get_trace_service_datasources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the scope (for an APM service datasource) but does not add any behavioral context beyond that, such as pagination behavior or result format. With annotations covering safety, a 3 is appropriate as it adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource. It contains no extraneous information and is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with well-described parameters and safety annotations, the description is complete. It tells the agent what the tool does, and the schema explains all parameters. No output schema is present, but the description's implication of returning a list of operations is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (service_id, device_datasource_id, limit, name_filter) has a description in the schema. The tool description does not add any parameter semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List') and resource ('operations (endpoints/routes) for an APM service datasource'). It distinguishes from sibling trace tools like get_trace_service_datasources (lists datasources) and get_trace_service_metrics (lists metrics) by focusing on operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need to list operations for a given service and datasource), but it does not explicitly mention alternatives or exclusions. For example, it doesn't say 'use get_trace_operation_metrics for metrics' or 'not for listing services.' So usage guidance is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_serviceARead-onlyIdempotent
Get detailed information about a specific APM trace service
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | APM service device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive). The description adds only that the tool returns 'detailed information,' without explaining what fields are included, how missing IDs are handled, or any operational traits beyond the annotated read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is appropriately concise for a one-parameter getter, even though 'detailed information' is somewhat vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one parameter, the description is usable, but with no output schema it leaves the agent to infer the return payload. It also does not clarify what distinguishes a trace service's 'detailed information' from the metrics, properties, alerts, and datasources exposed by sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents service_id with 100% coverage, so the baseline is 3. The description does not add meaning beyond the schema, such as how service_id relates to the APM trace service or what the expected format is.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and a specific resource ('APM trace service'), and 'specific' signals a singular lookup. It is distinguishable from the list-style get_trace_services sibling, though it does not explicitly distinguish itself from get_trace_service_metrics, get_trace_service_properties, or other related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific' implies this is for fetching one trace service by ID, but there is no explicit guidance on when to use this tool versus get_trace_services, get_trace_service_metrics, or get_trace_service_properties. No prerequisites or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_service_alertsCRead-onlyIdempotent
Get alerts for an APM trace service
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| severity | No | Filter by alert severity | |
| service_id | Yes | APM service device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the basic action, such as alert sorting, pagination, empty results behavior, or how it relates to trace service identifiers. With no additional disclosure, the description provides minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, making it efficient and front-loaded. It is slightly under-specified, but for conciseness it earns a high score because every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not explain what an alert object looks like, how to obtain a valid service_id, or how this tool relates to other trace and alert tools. For a 3-parameter tool with one required parameter, this terse description leaves important context unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning, but the schema already documents service_id, limit, and severity adequately. The description neither enhances nor harms parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get alerts for an APM trace service.' It clearly identifies the tool's function. However, it does not explicitly differentiate it from sibling tools like get_alerts or get_trace_service_metrics, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. Sibling tools like get_alerts, get_alert_details, and get_trace_service_metrics exist, but the description offers no selection criteria or exclusions. Usage context must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_service_datasourcesARead-onlyIdempotent
List datasources applied to an APM service (e.g. LogicMonitor_APM_Services, _Operations)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| service_id | Yes | APM service device ID | |
| name_filter | No | Filter by datasource name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds scoping context (APM service) and example datasource names, but no additional behavioral traits such as pagination or error behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core action front-loaded. The parenthetical example adds useful specificity without unnecessary length or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with 3 well-documented parameters and strong annotations, the description provides sufficient context for an agent to invoke it correctly. It does not explain return value shape, but with no output schema present and a simple list operation, this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents service_id, limit, and name_filter. The description adds example datasource values but does not meaningfully expand parameter semantics beyond what the schema provides, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-object pair ('List datasources applied to an APM service') and gives concrete example values. It clearly identifies the resource type and scope, though it does not explicitly differentiate itself from sibling tools like get_datasources or get_device_datasources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'applied to an APM service,' which tells the agent this is for APM service datasources. However, the description does not state when to prefer this tool over alternatives or mention any exclusions, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_service_metricsARead-onlyIdempotent
Get APM service-level RED metrics (Duration, ErrorOperationCount, OperationCount)
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End time in epoch seconds | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| service_id | Yes | APM service device ID | |
| start_time | No | Start time in epoch seconds | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device datasource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the RED metric names but does not disclose behavioral details like time-range defaults, aggregation behavior, or required prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the action and resource, then gives concrete metric names, making every word informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only metrics lookup with strong annotations and fully described parameters, the description is mostly sufficient for an agent to select and invoke the tool. However, there is no output schema and no mention of default time ranges or return value structure, leaving minor ambiguity around invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% property coverage with descriptions for all six parameters, so the schema carries the semantic burden. The description adds the datapoint names, which likely maps to the 'datapoints' parameter, but it does not explain parameter relationships or defaults beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('APM service-level RED metrics') and enumerates the exact metric names (Duration, ErrorOperationCount, OperationCount). The phrase 'service-level' helps distinguish it from sibling operation-level metric tools like get_trace_operation_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case through 'service-level RED metrics' but does not explicitly state when to use it instead of alternatives such as get_trace_operation_metrics or get_trace_service_properties. There are no clear exclusions or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_service_propertiesARead-onlyIdempotent
Get properties for an APM service (OTel attributes, namespace, metadata)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| service_id | Yes | APM service device ID | |
| name_filter | No | Filter by property name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint:false, so the safety profile is covered. The description adds meaningful behavioral context by enumerating the kinds of properties returned (OTel attributes, namespace, metadata), which goes beyond the annotations and clarifies what 'properties' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded with the exact operation and resource. The parenthetical adds valuable detail without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with well-documented schema and annotations, the description is nearly complete. It lacks an explicit pointer to sibling tools for when one needs full service details or metrics, so a small gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents service_id, limit, and name_filter fully. The description adds no parameter-level information beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and pinpoints the resource as 'properties for an APM service', further clarifying the content with the parenthetical 'OTel attributes, namespace, metadata'. This clearly distinguishes it from sibling tools like get_trace_service, get_trace_operations, and get_trace_service_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs APM service properties rather than metrics, operations, or the service record itself. However, it does not explicitly state when to prefer this tool over get_trace_service or when not to use it, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_servicesARead-onlyIdempotent
List APM trace services (deviceType:6). Entry point for discovering traced services.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| namespace | No | Filter by service name (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, fully covering the safety profile. The description adds the deviceType:6 scoping constraint and the 'entry point' role, which is useful context, but it does not disclose response format or pagination behavior. The added value is modest, so 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant words. The main action ('List APM trace services') is front-loaded, and the technical detail and usage hint are tightly packed. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters, no output schema, and robust read-only annotations, the description and schema together provide enough for an agent to invoke correctly. The 'Entry point' hint helps with chaining. A small gap is that the description does not mention the response shape, but this is minor for a read-only list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: limit is described as 'Max results' and namespace as 'Filter by service name (substring match)'. The tool description adds no extra parameter-specific meaning, so it does not go beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List APM trace services') and adds the distinguishing technical detail 'deviceType:6'. It clearly differentiates from siblings like get_trace_operations and get_trace_service_metrics by focusing on the services themselves, and the 'Entry point' phrase reinforces its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Entry point for discovering traced services' phrase gives a clear context for when to use this tool: as the first step in exploring trace data. However, it does not explicitly name alternative tools (e.g., get_trace_service) or state when not to use it, so some inference is still required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_sdtsARead-onlyIdempotent
Get SDTs scheduled to start within a time window
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| hours_ahead | No | Hours ahead to look |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat safety traits. It adds value by clarifying the temporal semantics ('scheduled to start'), but it does not disclose ordering, timezone handling, pagination, or what exactly defines the window boundary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word contributes to the core meaning, and the key temporal constraint is stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two optional documented parameters and strong safety annotations, the description is mostly sufficient. Minor gaps remain around timezone/relative-now semantics and result ordering, but these are unlikely to prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described ('Max results' and 'Hours ahead to look'). The description's 'time window' wording loosely connects to hours_ahead but does not add meaningful detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('SDTs'), and a distinct selection predicate ('scheduled to start within a time window'). This differentiates it conceptually from siblings like list_sdts and get_active_sdts, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'scheduled to start within a time window' implies this is for upcoming SDTs, giving some usage context. However, it does not explicitly state when to choose this over list_sdts, get_active_sdts, or get_scheduled_downtime_jobs, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userARead-onlyIdempotent
Get details about a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds no new behavioral context beyond restating the purpose, such as what fields are returned, error conditions, or authentication requirements, which could be expected for a read tool without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no redundant words. It front-loads the action and resource clearly, making it easy to scan and understand immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with rich annotations covering safety and idempotency, the description is mostly sufficient. 'Details' is somewhat vague about the return payload, but given the low complexity and clear parameter, the agent has enough to invoke it correctly; a more explicit description of return fields would be nice but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% since the only parameter, user_id, is described as 'User ID'. The description does not add any extra meaning about the parameter (e.g., that it must correspond to an existing user), so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with a specific resource 'details about a specific user', which clearly states the operation. It distinguishes itself from the sibling 'get_users' by emphasizing 'specific', implying a single user lookup rather than a list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific user' implies this is for retrieving a single user by ID, contrasting with the plural 'get_users', but there is no explicit guidance on when to choose this tool over alternatives like 'create_user' or 'update_user'. The usage context is only implied, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersARead-onlyIdempotent
List users from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides name_filter). Example: username~admin,status:active | |
| offset | No | Pagination offset | |
| name_filter | No | Filter by username (substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering the safety and idempotency profile. The description adds no additional behavioral context, such as pagination behavior, filtering capabilities, or return fields. Since annotations cover the safety aspects, the description doesn't contradict but also doesn't add 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the action and resource without any unnecessary words. It is front-loaded and appropriately sized for a simple list operation. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only list operation with four optional parameters, all documented in the schema. Annotations cover the safety profile. The description, while minimal, is sufficient for an agent to understand the purpose. It doesn't describe the return format, but for a list of users, it's reasonably obvious. Given the simplicity and the schema coverage, the description is complete enough, though it could mention pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage; each parameter (limit, filter, offset, name_filter) has a clear description. The tool description does not add any additional meaning beyond what the schema already provides. Since the schema fully documents the parameters, the description does not need to compensate. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List users from LogicMonitor' states a specific verb (List) and resource (users) with clear context (LogicMonitor). It unambiguously indicates a collection operation, distinguishing it from the singular get_user by its plural form. The purpose is crystal clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like get_user or create_user. It implies that if you need a list of users, this is the tool, but there is no mention of when not to use it or what other tools are for. A brief note about the singular alternative would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_websiteBRead-onlyIdempotent
Get detailed information about a specific website
| Name | Required | Description | Default |
|---|---|---|---|
| website_id | Yes | Website ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which already convey that this is a safe, non-mutating read operation. The description adds little beyond that, but it does not contradict the annotations. Since annotations are present, the bar is lower, and the description's limited behavioral detail is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core purpose. It is efficient and clear without unnecessary words. It could be slightly more detailed, but it earns a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, annotations provided, and no output schema, the description is minimal but adequate. However, it does not specify what 'detailed information' includes (e.g., properties, status, group), which might be important for an agent to anticipate the response. Since descriptions need to add value beyond structured data, a bit more detail on the nature of the returned details would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full coverage (100%) for the only parameter 'website_id' with a simple description 'Website ID'. The description of the tool does not add additional semantics for the parameter, but the schema is sufficient. With high schema coverage, baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about a specific website' clearly states the verb ('Get') and resource ('website'), and specifies that it returns detailed information. This distinguishes it from the sibling 'get_websites' (which likely lists websites) and 'get_website_data' (which likely returns metrics). However, it could be more explicit about what 'detailed information' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternatives like 'get_websites' or 'get_website_data'. However, the name itself and the context of being a singular 'get' tool implies it is for fetching a single website by ID. Sibling names provide some differentiation, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_website_dataBRead-onlyIdempotent
Get synthetic check data for a website
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End time in epoch seconds (optional) | |
| start_time | No | Start time in epoch seconds (optional) | |
| website_id | Yes | Website ID | |
| checkpoint_id | No | Checkpoint ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, openWorld, idempotent, and non-destructive hints. The description adds the 'synthetic' qualifier but no behavioral context such as pagination, data format, or filtering constraints. It doesn't contradict annotations but adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler or redundancy. It is appropriately front-loaded for a simple read operation, though it may be too terse for the ambiguity of 'synthetic check data'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description is minimal. The term 'synthetic check data' is unclear, and the agent lacks context about the return value or how to interpret results. Annotations cover safety but not semantic meaning, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are documented in the schema. The description does not elaborate on parameter semantics or relationships, so it doesn't add meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb 'get' and resource 'website' with a qualifier 'synthetic check data', distinguishing it from siblings like get_website that fetch website details. However, 'synthetic check data' is ambiguous and doesn't precisely define the payload, which could confuse an agent about the data type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_website or get_graph_data. It doesn't mention scenarios, prerequisites, or when to avoid it. Sibling tools are not referenced, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_website_groupsBRead-onlyIdempotent
List website groups
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| parent_id | No | Filter by parent group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond listing, such as pagination or default ordering, but it doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the action and resource without waste. It is appropriately sized for a simple list operation, though it could add a bit more context about filtering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and safety annotations, the description is adequate. However, it doesn't mention whether parent_id is hierarchical or how limit interacts with pagination, which could matter for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and parent_id) are already documented in the schema. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List website groups' uses a specific verb and resource, clearly indicating it retrieves website groups. It is distinguishable from siblings like get_websites and get_website, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only listing operation, and the sibling list includes get_websites and get_website, so an agent can infer this is for groups rather than individual websites. However, there is no explicit guidance on when to use this tool versus alternatives like get_website_groups vs get_websites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_websitesCRead-onlyIdempotent
List websites from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: name~prod,type:webcheck | |
| offset | No | Pagination offset | |
| group_id | No | Filter by website group ID | |
| name_filter | No | Filter by name (substring) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the word 'list' – nothing about pagination, default limits, filter semantics, or return shape. It does not contradict annotations but contributes little beyond what structured metadata already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no fluff or redundancy. It is front-loaded and scannable. Though very minimal, it is appropriately concise for what appears to be a straightforward list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents parameters and annotations cover safety, making the tool minimally viable. However, the description omits any guidance on when to prefer get_websites over get_website or get_website_data, and does not mention pagination or filter behavior, leaving some contextual gaps for an agent deciding how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 5 parameters documented (e.g., filter includes an example, offset is labeled 'Pagination offset'). The tool description adds no parameter-level meaning, so the baseline of 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List websites from LogicMonitor.' It is clear and the plural 'websites' naturally contrasts with the singular sibling get_website. However, it does not explicitly differentiate from siblings like get_website_data or get_website_groups, so it falls short of full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The description does not mention that get_website retrieves a single website, that get_website_data is for monitoring data, or how filters/pagination should be used. There are no exclusions or alternative routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_widgetBRead-onlyIdempotent
Get details about a specific widget
| Name | Required | Description | Default |
|---|---|---|---|
| widget_id | Yes | Widget ID | |
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds no behavioral nuance beyond the fact that it retrieves data, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler. It is appropriately short for a simple read operation, and every word contributes to the stated purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with strong annotations, the description is minimally adequate. However, without an output schema, the vague 'details' leaves the response contract unspecified, and the dashboard scoping relationship is not clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both widget_id and dashboard_id described. The description adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get details about a specific widget'. It distinguishes from sibling list tools like 'get_dashboard_widgets' by emphasizing a single widget, though 'details' remains somewhat vague about 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as 'get_dashboard_widgets' or 'get_dashboard'. The description merely restates the action without exclusions, context, or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowARead-onlyIdempotent
Get LogicMonitor workflow guidance text (incident_triage, rca_workflow, remediate_workflow, etc.). Mirrors MCP Prompt content for clients without Prompt support. Prefer the composite workflow tools (triage, diagnose, health_check, capacity_plan, portal_overview) when they exist -- those execute the procedure. Pass list=true to discover available workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | If true, return the list of available workflows with their arguments | |
| name | No | Workflow name (e.g., 'incident_triage') | |
| arguments | No | Optional template arguments passed to the workflow text builder |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds meaningful behavioral context beyond that: this tool 'Mirrors MCP Prompt content' for clients without Prompt support, and importantly clarifies that it only returns guidance text and does not execute the procedure, unlike the composite tools. This is valuable behavioral disclosure, though it does not describe output formatting or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The core purpose is front-loaded, followed by the important usage caveat and a concrete list-discovery hint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, idempotent retrieval tool with no required parameters and a complete input schema, this description is fully sufficient. It explains what the tool returns, how to discover workflows, and when to choose alternative tools. No output schema is present, but the return concept ('workflow guidance text') is clear from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents all three parameters with descriptions. The description adds extra meaning by giving example workflow names, explaining that list=true is the discovery mechanism, and framing arguments as 'template arguments' that feed the workflow text builder. This goes beyond the schema while a high-coverage schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a specific resource ('workflow guidance text'), and concrete examples ('incident_triage, rca_workflow, remediate_workflow'). It also explicitly distinguishes this tool from the composite workflow tools ('triage, diagnose, health_check, capacity_plan, portal_overview'), so an agent can tell exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to prefer the composite workflow tools instead ('Prefer the composite workflow tools ... when they exist -- those execute the procedure') and gives a concrete usage directive for the list parameter ('Pass list=true to discover available workflows'). This is clear routing guidance with an alternative and a condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkARead-onlyIdempotent
Composite health check: resolves a device, scores health across datasources, detects anomalies, checks alerts, and calculates availability. Returns a single device health report.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | Device ID | |
| summarize | No | Append plain-English NL summary via IBM Granite (requires WATSONX_API_KEY) | |
| device_name | No | Device display name (used if device_id not provided) | |
| detail_level | No | Output detail level (default: summary) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by revealing that this tool performs multiple internal steps (device resolution, health scoring, anomaly detection, alert checking, availability calculation) and consolidates them into one report, which is more informative than the tool name alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the key term 'Composite health check' and then lists the essential sub-operations in sequence. Every phrase adds information; there is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a composite tool with no required parameters and no output schema, the description covers the overall behavior and return type ('single device health report') well. It names the kinds of data computed (health, anomalies, alerts, availability), which is sufficient context for selection. Minor gaps remain around the exact output structure, but the full schema covers parameters and defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all four parameters, including defaults, the device_name fallback, and the WATSONX_API_KEY requirement for summarize. The description adds only a vague 'resolves a device' hint, not parameter-level usage detail. Baseline 3 is appropriate since the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a composite health-check operation with a specific verb and resource ('returns a single device health report'), and enumerates its component actions: resolving a device, scoring health across datasources, detecting anomalies, checking alerts, and calculating availability. The word 'Composite' plus this list differentiates it from the many single-purpose siblings like get_alerts, score_device_health, and calculate_availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when an overall device health report is desired rather than a focused sub-check—but it never explicitly states alternatives or exclusions. There is no 'use X instead for Y' guidance, so the agent must infer usage from the word 'Composite' and the listed sub-operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_appliesto_functionA
Import an AppliesTo function from JSON (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | AppliesTo function JSON | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is a non-read-only, non-idempotent write operation, so the description's main additional value is the explicit auth requirement ('requires write permission') and the JSON input format. It does not detail overwrite or conflict side effects, but the annotations cover the core safety profile. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence states the action, resource, input format, and permission need. There is no filler or redundant restatement of the tool name. This is an appropriate size for a simple import operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description and schema cover the basic invocation surface, and the annotations provide the safety profile. However, there is no output schema and little guidance on what the nested AppliesTo function JSON should contain, nor on default conflict behavior. These gaps make it minimally complete rather than fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Every parameter is already described in the schema (100% coverage), so the description carries little parameter burden. It adds no extra meaning about definition structure, handle_conflict values, or fields_to_preserve semantics. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Import' with the resource 'AppliesTo function' and the source format 'from JSON'. This clearly differentiates it from sibling import tools such as import_datasource or import_logsource. No ambiguity about what resource is operated on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to choose this tool over alternatives, and no mention of alternative tools. The usage is only implied by the resource name and purpose, though the permission prerequisite ('requires write permission') provides some selective context. This meets the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_configsourceA
Import a ConfigSource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions (e.g., from export_configsource), use create_configsource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | ConfigSource JSON definition | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as non-read-only and non-idempotent; the description adds that it requires write permission and uses multipart upload. It does not, however, disclose conflict/overwrite implications beyond what the schema parameters hint at, so there is room for more transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences, with the core action and requirement front-loaded and the alternative placement in a single secondary clause. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only three parameters, full schema coverage, and sibling differentiation, the description is largely complete. A short note on what the import returns or what happens on conflict would close the remaining gap, but nothing needed to select the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that 'definition' must be in LM Exchange JSON format rather than a REST API definition, which materially affects how the agent should prepare the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific action and resource: 'Import a ConfigSource from LM Exchange JSON format via multipart upload.' It explicitly contrasts with create_configsource, making the purpose and boundary unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: use create_configsource for REST API format definitions (e.g., from export_configsource), and notes the write-permission prerequisite. This tells an agent when to pick this tool over the closest sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_datasourceA
Import a DataSource from LM Exchange JSON format via multipart upload (requires write permission). This expects LM Exchange format, not REST API format. For REST API format definitions (e.g., from export_datasource), use create_datasource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | DataSource JSON definition in LM Exchange format | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate this is a write operation, and the description adds practical context: write permission is required and the data is sent via multipart upload. It does not detail overwrite or conflict side effects, but the handle_conflict and fields_to_preserve schema parameters cover that behavior, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the core action and format constraint, then provide the necessary routing to the alternative tool. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides all agent-relevant context: format expectation, transport, permission requirement, and sibling tool routing. With 100% schema coverage handling parameter details, nothing essential is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the definition object, handle_conflict, and fields_to_preserve all already described in the schema. The description's format warning largely restates the definition schema's 'LM Exchange format' wording, so it adds little new parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Import), the target resource (DataSource), the expected source format (LM Exchange JSON), and the transport method (multipart upload). It also explicitly distinguishes itself from create_datasource for REST API definitions, making it unambiguous among the many import/create siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use this tool for LM Exchange format, not REST API format. It also names the alternative tool, create_datasource, for REST API definitions such as those from export_datasource, providing clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_diagnosticsourceA
Import a DiagnosticSource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions (e.g., from export_diagnosticsource), use create_diagnosticsource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | DiagnosticSource JSON definition | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description correctly adds the write-permission requirement and multipart upload mechanics. However, it does not disclose whether the import overwrites existing modules, how handle_conflict works, or what happens to existing data beyond what the parameter names hint at. Some useful context is added, but side-effect transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, with the core action and format front-loaded. The alternative routing sentence earns its place and makes the definition efficient to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter import tool with no output schema, the description covers the purpose, format, permission requirement, and sibling distinction, while the schema covers parameter semantics. It could more fully explain multipart request mechanics and overwrite/conflict behavior, but the essential calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without additional description-level parameter detail. The description adds format context that lightly informs the definition parameter, but it does not elaborate on handle_conflict or fields_to_preserve beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific operation 'Import', the resource 'DiagnosticSource', and the input format 'LM Exchange JSON' via 'multipart upload'. It also distinguishes itself from create_diagnosticsource by noting the alternative uses REST API format definitions. An agent can tell exactly what this tool does and how it differs from its sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when not to use this tool: for REST API format definitions, use create_diagnosticsource instead, and even cites export_diagnosticsource as a likely source of such definitions. This is direct, actionable routing guidance with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_eventsourceA
Import an EventSource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions (e.g., from export_eventsource), use create_eventsource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | EventSource JSON definition | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: it requires write permission, uses multipart upload, and only accepts LM Exchange JSON format. Annotations already cover read-only/destructive/idempotent hints, and the description supplements them with auth and format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the primary purpose and key constraint front-loaded. The second sentence earns its place by routing to the correct sibling tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter import tool with no output schema, the description plus schema covers format, permission, and the alternative tool. It could state success return behavior or conflict outcomes more explicitly, but the essential invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context that the definition is an LM Exchange JSON object, but it does not clarify valid values for handle_conflict or the semantics of fields_to_preserve beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Import'), a clear resource ('EventSource'), and a precise source format ('LM Exchange JSON format via multipart upload'). It also explicitly distinguishes itself from create_eventsource, so an agent can immediately tell which tool fits the task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool (LM Exchange JSON format) and when not to use it, directing the agent to create_eventsource for REST API format definitions such as those from export_eventsource. This is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_jobmonitorB
Import a JobMonitor from JSON (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | JobMonitor JSON definition | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write behavior (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds a note about requiring write permission, which is consistent but does not go beyond annotations. It does not disclose behavior on conflict, overwrite semantics, or whether existing JobMonitors are affected. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the core function. No wasted words; it is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—a nested definition object, conflict handling, and field preservation—the description is minimal. It does not explain what a JobMonitor is, how to structure the JSON, or what happens on conflict. The schema covers parameter types but not context like expected usage patterns or edge cases. An agent would need to infer a lot from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (definition, handle_conflict, fields_to_preserve) are documented in the schema. The description itself adds no parameter-specific information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (import), the resource (JobMonitor), and the source format (JSON). It is specific and distinguishes from other import tools by naming the target resource type. No ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like creating a JobMonitor from scratch or using an update tool. The only note is about write permission, which is a prerequisite rather than a usage condition. It does not mention conflict resolution or when to use handle_conflict.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_logsourceA
Import a LogSource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions (e.g., from export_logsource), use create_logsource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | LogSource JSON definition | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description doesn't need to restate those. The description adds useful context: it requires write permission, uses multipart upload, and imports from LM Exchange JSON format. It doesn't detail conflict-handling behavior or overwrite semantics, but the schema's handle_conflict and fields_to_preserve parameters hint at those, and the description's permission note adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The core action and format are front-loaded, and the alternative routing is in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key context: what format is accepted, the permission requirement, and the alternative for a different format. It doesn't explain the return value or conflict-handling behavior, but the schema's parameters (handle_conflict, fields_to_preserve) already signal those concerns. The description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds context about the 'definition' parameter being in LM Exchange JSON format, which is useful, but it doesn't add meaning beyond the schema for handle_conflict or fields_to_preserve. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Import'), a specific resource ('LogSource'), and a specific format ('LM Exchange JSON format via multipart upload'). It also distinguishes itself from the sibling create_logsource by naming the alternative and the condition that selects it (REST API format definitions, e.g., from export_logsource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (LM Exchange JSON format via multipart upload) and when not to (REST API format definitions), naming the alternative tool (create_logsource). It also notes the write-permission requirement, which is a clear prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_propertysourceA
Import a PropertySource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions (e.g., from export_propertysource), use create_propertysource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | PropertySource JSON | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly and non-idempotent; the description adds 'requires write permission' and 'multipart upload' as extra behavioral context. It doesn't describe error handling or side effects beyond write, but given annotation coverage, this is a solid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff: purpose is front-loaded, and the alternative routing is given concisely. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an import tool with nested object and conflict handling, the description covers the format and alternative clearly. While it doesn't detail conflict behavior, that's handled by parameters in the schema, and annotations cover safety. Adequate and complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds a bit of context for 'definition' by specifying 'LM Exchange JSON format' but doesn't enrich handle_conflict or fields_to_preserve. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Import'), resource ('PropertySource'), and format ('LM Exchange JSON') and explicitly contrasts with create_propertysource for REST API format, clearly distinguishing from a key sibling. It also notes the multipart upload mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool (LM Exchange JSON format) and when not to, directing the agent to create_propertysource for REST API format definitions (e.g., from export_propertysource). Also mentions write permission as a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_topologysourceA
Import a TopologySource from LM Exchange JSON format via multipart upload (requires write permission). For REST API format definitions, use create_topologysource instead.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | TopologySource JSON | |
| handle_conflict | No | How to handle naming conflicts with existing modules | |
| fields_to_preserve | No | Fields to preserve from existing module when overwriting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read/write operation (readOnlyHint=false) and mark it as non-idempotent and non-destructive. The description adds useful context beyond annotations: multipart upload semantics and the write-permission requirement. It does not detail conflict-handling behavior, but annotations cover the safety profile adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first delivers the core function and key constraints, the second gives the routing to the sibling tool. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an import tool with a fully documented schema and no output schema, the description covers the essential invocation context: format, method, permission, and the sibling alternative. It doesn't describe response behavior, but that's not required given the lack of an output schema and the straightforward nature of the import operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description does not add further parameter-level meaning, and the baseline of 3 is appropriate. No contradictory or missing parameter details are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (Import), a specific resource (TopologySource), the input format (LM Exchange JSON), and the transport method (multipart upload). It also distinguishes itself from create_topologysource by format, making the tool's unique role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (LM Exchange JSON format) and directs to the alternative (create_topologysource for REST API format). It also notes the write-permission prerequisite, providing actionable guidance for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_logsA
Ingest log entries into LogicMonitor (requires LMv1 auth)
| Name | Required | Description | Default |
|---|---|---|---|
| logs | Yes | Array of log entries to ingest |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a write operation (readOnlyHint=false), non-idempotency, and open-world side effects. The description adds the LMv1 authentication requirement, which is useful context not present in annotations or schema, but it does not disclose failure behavior, duplicate handling, or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the action front-loaded and the auth caveat appended. There is no filler or redundant restatement of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter ingestion tool with full schema coverage and helpful annotations, the description plus schema is adequate for an agent to construct a valid request. It lacks usage alternatives and response details, but those are better addressed in other dimensions and are not critical omissions for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the logs array, message, timestamp, and _lm.resourceId. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Ingest log entries into LogicMonitor'. The verb 'ingest' plus the object 'log entries' clearly differentiates this from sibling tools like create_logsource (configuring a log source) or push_metrics (ingesting metrics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no mention of related tools. The only extra note is the LMv1 auth requirement, which is a prerequisite rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdtsCRead-onlyIdempotent
List scheduled downtimes from LogicMonitor
| Name | Required | Description | Default |
|---|---|---|---|
| admin | No | Filter by admin username (substring match) | |
| limit | No | Max results | |
| filter | No | Raw filter expression (overrides other filters). Example: type:DeviceSDT,admin~john | |
| sdt_type | No | Filter by SDT type | |
| device_id | No | Filter by device ID | |
| device_group_id | No | Filter by device group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral detail beyond that, such as pagination, filtering semantics, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler words. It is appropriately concise, though it sacrifices necessary context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six optional filters and no output schema, the description is too minimal. It does not clarify the returned data structure or how it relates to sibling tools like get_active_sdts or get_upcoming_sdts, leaving an agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all six parameters documented, so the schema carries the parameter meaning. The description does not add any additional semantics or elaboration, which is acceptable given the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'List' and the resource 'scheduled downtimes' from LogicMonitor, making the core operation clear. However, it does not differentiate from sibling tools like get_active_sdts or get_upcoming_sdts, leaving some 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the more specific get_active_sdts or get_upcoming_sdts. It lacks any context about use cases, exclusions, or when to prefer an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_session_historyBRead-onlyIdempotent
List recent tool call history
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum entries to return (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'recent' qualifier and 'tool call' resource, but does not elaborate on behavior such as ordering, pagination beyond the 'limit' parameter, or whether the current call is included. Without annotations this would be a 2, but the annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or redundancy. It is front-loaded with the action and object. It could earn a 5 if it included 'session' for extra clarity, but as-is it is efficient and appropriately sized for a one-parameter read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is minimally adequate: it tells the agent the tool returns a list of recent tool calls. However, it does not specify the return format, whether the history is scoped to the current session, or any ordering semantics, which would be helpful given the absence of an output schema. The presence of annotations reduces the need for safety details, but the description still leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: the only parameter 'limit' is described with a default and maximum. The description adds no parameter-specific information beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('recent tool call history'), which clearly identifies the operation. It is distinct from any sibling tool; no other tool lists session history. However, it omits the word 'session' explicitly, relying on the tool name to provide that context, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the description: an agent would call this when it needs to review recent tool call history. There is no explicit statement of when to use it versus alternatives like get_session_context or clear_session_context, and no exclusions or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_overviewARead-onlyIdempotent
Composite portal overview: aggregates alert statistics, collector health, maintenance windows, noise scores, and dead devices into a shift-handoff report.
| Name | Required | Description | Default |
|---|---|---|---|
| summarize | No | Append plain-English NL summary via IBM Granite (requires WATSONX_API_KEY) | |
| hours_back | No | Hours to look back (default: 4) | |
| detail_level | No | Output detail level (default: summary) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds that this is a composite aggregation, but it does not disclose potential size, latency, or dependence on other internal services. Given annotations, this is adequate but not richer than expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, dense sentence front-loads the tool's composite nature and lists its components after a colon. Every word contributes; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no required parameters, a fully-described input schema, and annotations covering safety, the description is largely complete. It could add explicit guidance about when not to use it or how the returned report is shaped, but those are minor gaps given the composite overview purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; each parameter has its own description. The tool description helps contextualize parameters by listing the data feeds that hours_back and detail_level affect, but it does not add meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('aggregates') and resource ('portal overview'), then enumerates the exact data sources included (alert statistics, collector health, maintenance windows, noise scores, dead devices) and the intended output (shift-handoff report). This clearly distinguishes it from granular sibling tools like get_alerts or get_collector_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear use case: 'shift-handoff report,' which tells an agent when to select this composite view. It does not explicitly name alternatives or exclusions, like saying 'use individual get_* tools for granular queries,' so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_metricsB
Push custom metrics into LogicMonitor (requires LMv1 auth)
| Name | Required | Description | Default |
|---|---|---|---|
| metrics | Yes | Metric payload with resource mapping and datapoints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation. The description adds the auth requirement, which is useful context, but does not disclose what happens on push (e.g., insert vs. upsert, partial failures, or side effects). Given annotation coverage, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Both the primary action and the auth requirement earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with one nested object and no output schema, the payload structure is covered by the schema and safety traits are covered by annotations. However, the description lacks when-to-use guidance and any indication of response/error behavior, so it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for the metrics object and all nested properties, so the schema carries the parameter-documentation burden. The description adds no additional parameter semantics beyond the general purpose, which is consistent with the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Push') and resource ('custom metrics into LogicMonitor'), making the tool's purpose clear. It does not explicitly differentiate itself from ingestion-related siblings such as ingest_logs or query_otlp_metrics, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an authentication prerequisite ('requires LMv1 auth') but no guidance on when to use this tool versus alternatives like ingest_logs or import_datasource. There are no exclusions or conditions that would help an agent choose this tool over related ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_otlp_metricsARead-onlyIdempotent
[PREVIEW] Run a PromQL range query against native OTLP metrics. Returns a time-series matrix
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Window end, unix epoch seconds | |
| step | No | Resolution step, e.g. '30s', '5m', '1h'; use larger steps for wider windows | |
| query | Yes | PromQL expression. Examples: container_memory_usage_bytes (raw series), avg(container_cpu_usage_seconds_total) (aggregate), rate(container_network_receive_bytes_total[5m]) (per-second rate), nginx_up{service_name="api"} (label matcher). Discover names and labels with get_otlp_metric_names / get_otlp_metric_labels | |
| start | Yes | Window start, unix epoch seconds. Keep windows under ~30 days; very wide windows fail in the metrics backend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior; the description adds the return type ('time-series matrix') and a '[PREVIEW]' status flag. It does not mention failure modes, but the schema covers the wide-window constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the action and result with no filler. '[PREVIEW]' is a useful status marker and does not hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a PromQL query tool, the schema supplies rich parameter guidance (query examples, step hints, window limits) and annotations cover safety. The description's only gap is lack of explicit usage-alternative routing and a fuller return-format description, but the overall definition is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented with types, formats, and examples. The description adds no parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Run'), resource ('native OTLP metrics'), and query type ('PromQL range query'), and states the return shape ('time-series matrix'). This clearly distinguishes it from sibling discovery tools like get_otlp_metric_names and get_otlp_metric_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for querying metric time series but gives no explicit when/when-not guidance or alternative routing. The schema's query examples point to get_otlp_metric_names / get_otlp_metric_labels for discovery, but that guidance lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recover_deviceA
Recover a soft-deleted device/resource (requires write permission). Only works within the recovery window.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID to recover |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive. The description adds meaningful context beyond those flags: the operation restores a soft-deleted entity and is constrained by a recovery window. It also explicitly calls out the permission requirement, which helps an agent plan authorization. Minor omissions like failure behavior are acceptable given the low complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action and the most important constraint (recovery window) are front-loaded, and the permission requirement is included without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations and no output schema, the description provides the necessary context: what it does, the precondition, and the time constraint. It could mention what happens outside the recovery window or whether the operation is reversible, but those are not essential for a simple recovery call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a clear description for device_id. The tool description does not add any additional parameter-level meaning, but the schema already carries the full semantic burden, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Recover'), a specific resource ('soft-deleted device/resource'), and a key scope ('within the recovery window'). It is immediately distinguishable from all sibling tools, none of which offer a recover action, and pairs naturally with delete_device.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: only for soft-deleted devices/resources and only within the recovery window. It also notes the write-permission requirement. It does not explicitly name alternatives, but none exist among siblings, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_netscanB
Execute a network scan (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| netscan_id | Yes | Netscan ID to run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and idempotentHint=false, and the description adds the permission requirement 'requires write permission', which is useful behavioral context. However, it does not disclose side effects, duration, or asynchronicity, leaving room for more transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence contains the core purpose and a critical precondition ('requires write permission'). No filler or redundant phrasing, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the minimal description is adequate. However, it omits what happens after execution (e.g., whether results are returned, if the scan is asynchronous, or how to check status), so an agent cannot fully anticipate the next steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the only parameter (netscan_id) with description 'Netscan ID to run'. The tool description adds no further meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Execute a network scan'. It distinguishes from sibling read tools like get_netscan/get_netscans by using 'execute' rather than 'get'. However, it does not explicitly contrast with any sibling, leaving some ambiguity about the exact scope of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool. It does not mention that one must first list available netscans via get_netscans or that results can be retrieved via get_netscan. The description simply states the action without context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_reportA
Run/execute a report (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | Report ID to run | |
| notify_email | No | Email to notify when complete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'requires write permission,' which usefully supplements readOnlyHint=false with an auth requirement. However, it does not disclose whether execution is asynchronous, whether results are stored, or what side effects occur beyond triggering the report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the action and the key permission requirement without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter action with complete schema coverage and annotations, the description is minimally viable. The main gap is that there is no output schema and the description does not mention what the call returns or how to follow up on execution status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both report_id and notify_email are clearly documented. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run/execute a report') on a specific resource, making it immediately clear this is not a retrieval or scheduling tool. It distinguishes itself from sibling getters like get_report and get_report_execution by signaling a state-changing execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_report_execution for checking results or update_report_schedule for scheduling. The description leaves all routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_baselineBRead-onlyIdempotent
Save a metric baseline from historical data. Computes mean, min, max, stddev per datapoint and stores as a session variable for later comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of historical data to use | |
| instance_id | Yes | Instance ID | |
| baseline_name | Yes | Name for the stored baseline | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'stores as a session variable', which is a stateful write, while annotations declare readOnlyHint=true. This is a direct contradiction about the tool's side effects. The computation details are useful, but the contradiction dominates and confuses the behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the action ('Save a metric baseline') and supplies the key behavioral details without extra filler. Every clause earns its place, and no redundant phrasing appears.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the computation, storage mechanism, and intended later use, which is good for a tool with no output schema. However, it does not state what the tool returns or confirms after storing, and the annotation contradiction about read-only behavior undermines the agent's ability to fully understand the operation's side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds the conceptual context of computing statistics over historical data, but it does not explain parameter-specific semantics beyond what the schema already provides. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Save a metric baseline'), the data source ('historical data'), the computation performed (mean, min, max, stddev), and the outcome ('stores as a session variable'). This makes the tool's function clear. However, it does not explicitly name or contrast a sibling tool like compare_to_baseline, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying the baseline is stored 'for later comparison', which hints at a workflow involving compare_to_baseline. It does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or prerequisites, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_alert_noiseARead-onlyIdempotent
Score alert noise level using Shannon entropy and flap detection. Produces a score from 0 (quiet) to 100 (extremely noisy) with recommendations for tuning.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Optional device name filter | |
| group_id | No | Optional device group ID filter | |
| hours_back | No | Hours to look back |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds value by explaining the algorithmic approach and the output format (score plus recommendations), but it does not disclose any behavioral nuances such as data sources or edge-case handling. This is adequate given the strong 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, immediately stating the action and method, then describing the output. Every word contributes to understanding the tool's function and result. There is no filler or redundancy, making it an excellent example of concise, front-loaded writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return values (score 0-100, recommendations) and the core method, which is sufficient because all parameters are optional and fully documented in the schema. However, it does not clarify what data sources are analyzed or how 'noise' is defined, which could matter in a complex environment. With no output schema, the output description is helpful, but a touch more context would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all three optional parameters, each with a clear explanation. The description itself adds no additional meaning about parameters, so it does not compensate beyond what the schema already offers. Baseline of 3 is appropriate because the schema carries the parameter semantics fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Score'), a specific resource ('alert noise level'), and the method ('Shannon entropy and flap detection'). It also defines the output scale (0-100) and includes recommendations, making the tool's purpose unmistakable. This level of specificity differentiates it from siblings like detect_alert_burst or get_alert_statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It never mentions related tools like detect_alert_burst or get_alert_statistics, nor does it state any prerequisites or exclusion criteria. An agent must infer the appropriate context from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_device_healthARead-onlyIdempotent
Score health of a specific device-datasource instance using z-score analysis. For full device health reports across all datasources, use the health_check composite tool instead.
| Name | Required | Description | Default |
|---|---|---|---|
| weights | No | Optional dict of datapoint_name -> weight | |
| device_id | Yes | Device ID | |
| datapoints | No | Comma-separated datapoint names (all if omitted) | |
| hours_back | No | Hours of historical data for baseline | |
| instance_id | Yes | Instance ID | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior, which lowers the bar for additional disclosure. The description adds useful context about z-score methodology and per-instance scope, but does not explain the score's scale, meaning, or returned structure, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the core action and method, and the second sentence provides actionable sibling routing. Everything in the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Full schema parameter documentation and strong annotations cover invocation inputs and safety profile. However, with no output schema, the description should convey what the returned health score represents, such as its type, range, or interpretation, to be fully complete for an agent acting on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds no extra parameter syntax, defaults, or interrelationships beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Score'), a precise resource ('specific device-datasource instance'), and a method ('z-score analysis'). It also differentiates the tool from the sibling health_check tool by explicitly directing full multi-datasource health reports elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use guidance: score a single device-datasource instance. It also names the alternative, health_check, for full device health reports across all datasources, making the choice between siblings explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsARead-onlyIdempotent
Search available MCP tools by keyword or category. Use this to discover which tools are available for a task.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (default: 10) | |
| query | Yes | Search keywords (e.g., 'alert', 'device health', 'forecast') | |
| category | No | Filter to a specific category (e.g., 'alerts', 'ml_analysis') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds modest behavioral context by clarifying the search mechanism (keyword/category) and discovery purpose, but says nothing about result shape, ordering, or limit semantics. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The action and resource are front-loaded, followed immediately by the usage purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple discovery tool with 3 fully-documented parameters, no nested objects, and a complete read-only/idempotent annotation profile, the description is nearly sufficient. The only gap is that no output schema exists and the description doesn't hint at what a result set looks like, but the tool's purpose makes that largely self-evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all three parameters (query, limit, category) are individually documented in the schema. The description reinforces that query and category are the two search dimensions, matching the schema, but adds little beyond it. Baseline 3 is appropriate when the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search available MCP tools') with the two search dimensions (keyword or category), plus the intent ('discover which tools are available for a task'). As a meta-tool searching the tool catalog itself, it is inherently distinct from all domain-specific siblings like get_devices or create_alert_rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to discover which tools are available for a task' gives a clear context for when to invoke it: task-to-tool routing. It stops short of explicitly stating when not to use it (e.g., when the tool name is already known, call it directly), but for a self-describing meta-search tool the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_action_rule_statusA
Enable or disable an action rule without touching its matchers (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | True to enable, False to disable | |
| rule_id | Yes | Action rule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds value by explicitly stating 'requires write permission' and by constraining the mutation to the status field only, clarifying that matchers are left unchanged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the action ('Enable or disable') and immediately clarifies scope. No wasted words or redundant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters and no output schema. The description covers the purpose, scope, and permission requirement, which is sufficient for an agent to invoke it. It does not mention the return value, but that is a minor gap given the simplicity and lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both rule_id and enabled receiving clear descriptions in the input schema. The tool description itself adds no additional parameter context, so the baseline 3 is appropriate given the schema fully documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Enable or disable') and resource ('an action rule'), and clarifies the scope by adding 'without touching its matchers', which clearly distinguishes it from the sibling tool update_action_rule. This is a precise, unambiguous definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explanation implies when to use this tool: when you only need to toggle status while preserving matchers. It does not explicitly name an alternative like update_action_rule, but the 'without touching its matchers' phrase gives clear contextual guidance. It also notes the write-permission prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_session_variableAIdempotent
Set a user-defined session variable for use across tool calls
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name | |
| value | Yes | Variable value (string, number, boolean, array, or object) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description is consistent with them — no contradiction. The description adds persistence-across-calls context but does not disclose overwrite semantics (does re-setting an existing name replace or error?), name constraints, or whether variables survive beyond the current session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence with the verb and resource front-loaded and zero filler. Every word earns its place; nothing is redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with full schema coverage and safety annotations, the combined description, schema, and annotations are nearly sufficient for an agent to invoke it correctly. Minor gaps remain around overwrite behavior and session-lifetime semantics, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'name' ('Variable name') and 'value' ('Variable value (string, number, boolean, array, or object)') are documented inline with type information. The description adds no parameter detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action verb ('Set') with a precise resource ('user-defined session variable') and states the purpose ('for use across tool calls'). 'User-defined' distinguishes it from system session context, and the verb alone differentiates it from siblings like get_session_variable and delete_session_variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for use across tool calls' implies the core scenario — persisting state between calls — but no explicit when/when-not guidance or alternative routing is given. Given the rich session-tool family (get_session_variable, delete_session_variable, get_session_context, clear_session_context, list_session_history), explicit differentiation would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terraform_generateARead-onlyIdempotent
Export an existing LogicMonitor resource as Terraform HCL configuration using the logicmonitor/logicmonitor provider. Supports device, device_group, collector, alert_rule, escalation_chain, dashboard, datasource, sdt, website, role, and report_group resource types.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_id | Yes | LogicMonitor resource ID to export | |
| resource_type | Yes | LM resource type to export (device, device_group, collector, collector_group, alert_rule, escalation_chain, dashboard, dashboard_group, datasource, sdt, website, website_group, role, report_group) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds the key behavioral context that the tool generates Terraform HCL using a specific provider, and that it supports a specific set of resource types. It does not disclose details like whether the export includes nested resources, whether it requires existing provider configuration, or what the output format looks like beyond 'HCL configuration'. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence states the action, target, and output format; the second sentence enumerates supported resource types. The most important information is front-loaded, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only, idempotent export tool with 100% schema coverage, the description is nearly complete. It states the output format, provider, and supported resource types. The only gap is that it doesn't describe the return value shape (e.g., whether it returns the HCL string directly or a file reference), but with no output schema and annotations covering the safety profile, the description is adequate. A 4 is warranted because the description could have added a note about the output format details, but it is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (resource_id and resource_type) are already documented in the schema. The description adds the list of supported resource_type values, which overlaps with the schema's enum-like list but is slightly shorter (the schema includes collector_group, dashboard_group, website_group, which the description omits). The description does not add meaning beyond the schema for resource_id. Baseline 3 is correct when the schema does the heavy lifting, and the description's resource-type list is partially redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export'), a specific resource ('existing LogicMonitor resource'), and the output format ('Terraform HCL configuration using the logicmonitor/logicmonitor provider'). It also enumerates the supported resource types, which distinguishes it from sibling export tools like export_datasource, export_dashboard, export_alert_rule, etc. The description clearly identifies what this tool does and how it differs from the more specific export_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to export a LogicMonitor resource as Terraform HCL, and it lists the supported resource types. It does not explicitly state when NOT to use it or name alternatives (e.g., use export_datasource for a single datasource export), but the supported-type list and the provider-specific wording give clear context. The sibling list contains many export_* tools, so an explicit exclusion would have been stronger, but the description is sufficient for an agent to select this tool for Terraform-generation use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triageARead-onlyIdempotent
Composite triage: correlates alerts, clusters by device/time, scores noise, assesses blast radius, and checks recent changes. Returns a prioritized incident report.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Filter by device name | |
| group_id | No | Filter by device group ID | |
| severity | No | Filter alerts by severity | |
| summarize | No | Append plain-English NL summary via IBM Granite (requires WATSONX_API_KEY) | |
| hours_back | No | Hours to look back (default: 4) | |
| detail_level | No | Output detail level (default: summary) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive behavior, so the description's burden is lower. It adds value by revealing the multi-step processing pipeline (correlation, clustering, noise scoring, blast-radius assessment, change checks) and the output form, which the annotations do not convey. It does not discuss performance or data requirements, but the composite workflow is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the tool's composite nature, lists its processing steps, and states the return value. There is no filler or repetition of schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a composite analysis tool with six parameters, full schema coverage, and safety annotations, the description covers the main missing piece—what the tool returns (a prioritized incident report). It could more explicitly state that it replaces multiple sibling calls or describe the report's contents, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented (device, group_id, severity, summarize, hours_back, detail_level). The description only loosely aligns with the parameters (e.g., 'clusters by device/time' maps to device/group_id and hours_back) but adds no parameter-specific meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Composite triage' and enumerates a concrete pipeline: correlates alerts, clusters by device/time, scores noise, assesses blast radius, and checks recent changes. This makes it immediately distinguishable from narrower sibling tools like correlate_alerts, score_alert_noise, and analyze_blast_radius, and it names the deliverable (prioritized incident report).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Composite' label implies this is the umbrella tool to use instead of invoking several analysis siblings individually, but the description never explicitly states when to choose it over correlate_alerts, score_alert_noise, analyze_blast_radius, or correlate_changes. There is no exclusion or alternative-routing guidance, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_action_chainA
Update an action chain via PATCH; only provided fields are sent (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New chain name | |
| stages | No | Replacement ordered stage list | |
| chain_id | Yes | Action chain ID | |
| description | No | New description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true. The description adds the PATCH behavior (only provided fields are sent) and the write permission requirement, which are valuable behavioral details beyond the annotations. However, it doesn't disclose what happens on failure, partial updates, or whether the full updated chain is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that front-loads the key semantic (PATCH partial update) and includes the permission requirement. No wasted words; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with fully documented schema and clear annotations, the description covers the essential behavioral context (PATCH, permission). It doesn't mention return value, but there's no output schema and for a PATCH update the agent can reasonably infer the updated object or success status. Slightly more detail on response shape would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all four parameters. The description's PATCH note adds meaning to how parameters are applied (only provided fields are sent), which helps the agent understand partial updates. This meets the baseline but doesn't go beyond what the schema and the PATCH detail imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'action chain', and specifies that it uses PATCH semantics. It is distinguishable from sibling tools like create_action_chain and delete_action_chain. However, it doesn't explicitly differentiate from update_escalation_chain or other update_* tools, though the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when updating an existing action chain with partial fields. It doesn't explicitly state when not to use it or name alternatives (e.g., create_action_chain for new chains, delete_action_chain for removal). The write permission requirement is a useful usage cue but not about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_action_ruleA
Update an action rule via PATCH; only provided fields are sent (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New rule name | |
| level | No | Alert severity to match (e.g. Error, Critical) | |
| devices | No | Device display names | |
| enabled | No | Enable/disable the rule | |
| rule_id | Yes | Action rule ID | |
| instance | No | Instance matcher | |
| datapoint | No | Datapoint matcher | |
| datasource | No | Datasource name matcher | |
| device_groups | No | Device group full paths | |
| action_chain_id | No | Action chain to trigger | |
| resource_properties | No | Property matchers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavior beyond annotations: PATCH partial-update semantics and a write-permission requirement. Annotations already indicate a non-read, non-idempotent operation, so the description adds context without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence conveys purpose, HTTP method, partial-update semantics, and permission requirements with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the fully documented schema, the description gives enough context for an agent to call the tool correctly. It lacks explicit guidance on when to prefer set_action_rule_status for toggling enabled state, but that is a routing nicety rather than a blocking gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 11 parameters. The description reinforces the partial-update behavior but does not add meaning to specific parameters beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('action rule'), plus the HTTP method ('PATCH'), which clearly distinguishes it from sibling create/get/delete action-rule tools. 'Only provided fields are sent' further clarifies the operation mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: modify an existing action rule. However, there is no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives like set_action_rule_status, which overlaps with the enabled field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_alert_ruleB
Update an alert rule in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated name | |
| rule_id | Yes | Alert rule ID to update | |
| priority | No | Updated priority level | |
| level_str | No | Updated alert level filter | |
| escalation_chain_id | No | Updated escalation chain ID | |
| suppress_alert_clear | No | Updated suppress alert clear setting | |
| suppress_alert_ack_sdt | No | Updated suppress ack/SDT setting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only mutation (readOnlyHint=false) and a non-destructive operation (destructiveHint=false). The description adds the authorization requirement, which is useful behavioral context. However, it does not disclose partial-update versus full-replace semantics or behavior for a non-existent rule_id, leaving key uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler: verb, resource, platform, and permission. It is efficient, though the terseness means it forgoes the chance to include usage guidance that would improve its overall value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The complete parameter schema and annotations provide the core calling contract, and the description adds an auth note. Remaining gaps include no usage guidance, no explicit partial-update semantics, and no indication of what the tool returns. This is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – each parameter has its own description (e.g., 'Updated alert level filter'). The description itself adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and identifies the resource ('alert rule'), with platform context ('in LogicMonitor'). The update verb distinguishes it from sibling operations like get_alert_rule, create_alert_rule, and delete_alert_rule, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives. 'Requires write permission' is an authorization prerequisite, not a usage rule. It fails to mention that this tool is for modifying an existing alert rule, which would help differentiate it from create_alert_rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_collectorB
Update a collector (requires write permission). Change group, description, failback, or escalation chain.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | New description | |
| collector_id | Yes | Collector ID to update | |
| enable_failback | No | Enable automatic failback | |
| collector_group_id | No | New collector group ID | |
| escalation_chain_id | No | Escalation chain ID for collector down alerts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, implying a non-read, non-destructive mutation. The description adds 'requires write permission' and lists updatable fields, but does not disclose whether unspecified fields are preserved, what side effects occur, or what the response contains. For a mutation tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the action, then states the permission and the scoped fields. No word is wasted, and the structure allows quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal annotations, the description does not fully round out the operation. It omits whether partial updates are allowed, whether absent fields are left untouched, and when to use get_collector or update_collector_group instead. The schema covers parameters, but the overall usage context remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear explanation such as 'Enable automatic failback' or 'New collector group ID'. The description's field enumeration mirrors the schema without adding deeper meaning; it earns the baseline 3 for not detracting from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair, 'Update a collector', and enumerates the mutable aspects: group, description, failback, or escalation chain. This clearly distinguishes it from siblings like update_collector_group and delete_collector, which target different entities or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives, nor any exclusions or conditions. The only qualifier, 'requires write permission', is a permission prerequisite, not usage direction. An agent is left to infer when this update is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_collector_groupB
Update a collector group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New group name | |
| group_id | Yes | Collector group ID to update | |
| description | No | New description | |
| auto_balance | No | Enable/disable auto-balancing | |
| custom_properties | No | Custom properties to merge | |
| auto_balance_strategy | No | New auto-balance strategy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the mutation via readOnlyHint=false. The description adds a permissions requirement, which is useful but does not disclose side effects, whether fields are overwritten or merged, or behavior around openWorldHint/idempotentHint. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The core action is stated front-loaded, and the permission note is appended efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter update tool with a nested object and no output schema, the description is minimal. The parameters are covered by the schema, but the description omits any context about what happens on update, merge semantics for custom_properties, or expected response behavior. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented in the input schema. The description itself adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource, 'Update a collector group', which clearly identifies the tool's purpose. It is distinct from sibling tools like delete_collector_group, get_collector_group, and update_collector, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'requires write permission', which is a permission constraint rather than a when-to-use instruction. No context is given for choosing this tool over alternatives such as create_collector_group or update_collector, nor when updating is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_configsourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. PREFER update_logicmodule(type='configsource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL ConfigSource definition with all fields (will replace) | |
| configsource_id | Yes | ConfigSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a critical behavioral trait beyond the annotations: omitted fields in `definition` are BLANKED on the server. It also emphasizes the confirm requirement and explicitly warns about the destructive nature of the update, adding valuable context the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core semantics ('RAW UPDATE -- full-replace semantics'), and every sentence adds value. It avoids unnecessary filler while conveying the essential behavioral and usage information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key behavioral caveat (field blanking), the alternative tool, and the confirm requirement. It does not describe return values, but the absence of an output schema makes that less critical. Overall, it provides sufficient context for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the full-replace semantics of `definition` (omitted fields are blanked) and reinforcing the role of `confirm`. This adds meaningful clarification to the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as a raw update with full-replace semantics on a ConfigSource. It distinguishes itself from the sibling update_logicmodule by specifying the difference (full-replace vs partial updates), so an agent can immediately understand what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names update_logicmodule as the preferred alternative for partial updates with diff preview, and it states that confirm=true is required to proceed. This gives unambiguous guidance on when to use this tool versus the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dashboardB
Update an existing dashboard (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| group_id | No | New group ID | |
| sharable | No | Make dashboard sharable | |
| description | No | New description | |
| dashboard_id | Yes | Dashboard ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation, so the description does not need to restate that. The added 'requires write permission' note provides a useful authorization detail. However, it does not disclose whether updates are partial or full replacements, what side effects occur, or what happens if the dashboard_id does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundancy. It front-loads the core purpose and adds the useful permission note. It is concise, though arguably too sparse for a tool with five parameters and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update operation with five parameters and no output schema, the description leaves important gaps: it does not state the response behavior, whether partial updates are supported, or any error conditions. The annotations and schema cover basic safety and parameter meaning, but the description fails to provide enough operational context for an agent to fully understand the update workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema. The description adds no additional meaning about parameter relationships, defaults, or update semantics. A baseline 3 is appropriate since the schema carries the parameter-documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Update an existing dashboard'. This distinguishes it from create/delete/get dashboard tools at a basic level, though it adds no detail about what aspects of a dashboard can be updated or how it differs from nearby tools like update_dashboard_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives. There is no mention of related tools such as get_dashboard or create_dashboard, no exclusions, and no conditions that would make another tool more appropriate. The only contextual hint is the write permission requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dashboard_groupB
Update a dashboard group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New group name | |
| group_id | Yes | Dashboard group ID to update | |
| parent_id | No | New parent group ID | |
| description | No | New description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description's mention of 'requires write permission' adds a small amount of context about authorization. However, it does not disclose what happens to child groups if parent_id is changed, whether the update is partial or full replacement, or any side effects. The description adds minimal behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is easy to parse and front-loads the action. It is appropriately concise, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with full schema coverage and no output schema, the description is minimally adequate. However, it lacks guidance on when to use this tool versus the many sibling update_* tools, and it does not mention any behavioral nuances like whether parent_id changes cascade. Given the large sibling list, a bit more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add any additional meaning beyond what the schema provides, such as whether name and parent_id can be updated independently or if there are constraints on parent_id. Baseline 3 is appropriate because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('dashboard group'), which clearly identifies the operation. It does not explicitly distinguish it from sibling tools like update_collector_group or update_device_group, but the resource name is unambiguous enough that an agent can infer the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the resource and operation, but it does not provide explicit when-to-use guidance or mention alternatives. The sibling list contains many update_* tools, so an agent would benefit from a note about when to choose this over update_dashboard or update_widget, but the current text leaves that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_datasourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. Two prior production incidents wiped Groovy scripts via this tool. PREFER update_logicmodule(type='datasource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL DataSource definition with all fields (will replace) | |
| datasource_id | Yes | DataSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns of destructive behavior (field blanking, production incidents) but the annotation destructiveHint=false contradicts this. This is a serious inconsistency, so the description's behavioral disclosure is undermined by the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the most critical warning ('full-replace semantics'), and packs essential safety and alternative guidance into a few sentences without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with destructive potential, the description covers the replacement semantics, the confirm requirement, historical incidents, and the safer alternative. It is complete for safe usage, aside from the annotation contradiction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds the crucial clarification that omitted fields are blanked, which is not fully explicit in the schema. This goes beyond the schema's 'will replace' phrasing, adding valuable semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('update'), resource ('datasource'), and the critical semantics ('full-replace'). It explicitly differentiates from the sibling tool update_logicmodule, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs the agent to prefer update_logicmodule for partial updates with diff preview, and states the requirement for confirm=true. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_deviceA
Update an existing device/resource (requires write permission). Custom properties are merged with existing properties (not replaced).
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID to update | |
| description | No | New description | |
| display_name | No | New display name | |
| host_group_ids | No | New group IDs | |
| disable_alerting | No | Disable alerting | |
| custom_properties | No | Custom properties | |
| preferred_collector_id | No | New collector ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing the merge-not-replace semantics for custom_properties, which is a high-value behavioral nuance not present in the schema or annotations. It also adds an authentication/authorization precondition ('requires write permission'). This is consistent with readOnlyHint=false, destructiveHint=false, and openWorldHint=true. Slightly short of a 5 because it does not clarify whether other list fields like host_group_ids are replaced wholesale or merged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first states the action and the permission prerequisite, the second captures the most operationally important nuance (merge semantics). Each sentence earns its place and the critical behavioral detail is front-loaded immediately after the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema, the description covers the purpose, the permission requirement, and the trickiest behavioral nuance. With no output schema, the return value is left undisclosed, but this is a minor gap for an update operation. The rich input schema and annotations carry the remaining burden, making this definition largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, setting a baseline of 3. The description adds genuine parameter-level meaning by specifying merge behavior for custom_properties, which materially changes how an agent sets that argument. Other parameters are already well described in the schema, and the description does not need to repeat them. The additive merge insight raises it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update an existing device/resource.' The word 'existing' adds a scope qualifier that distinguishes it from create_device, and the resource name separates it from update_device_instance, update_device_property, and update_device_group. It falls short of a 5 because 'device/resource' is slightly imprecise and it does not explicitly name a distinguishing sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many related siblings (get_device, create_device, delete_device, recover_device, update_device_instance, update_device_property). The 'requires write permission' note is a prerequisite, not a routing guide, and there are no exclusions, conditions, or alternative-recommendations. An agent must infer the boundary between this and similar device-scoped mutating tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_device_eventsourceA
Update a device-level EventSource association (requires write permission). Use to enable or disable alerting for an EventSource on a specific device.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| disable_alerting | No | Set true to disable alerting, false to enable | |
| device_eventsource_id | Yes | Device-EventSource association ID (from get_device_eventsources) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a useful behavioral detail beyond the annotations by explicitly noting that the operation 'requires write permission.' It also clarifies that the update is specifically about toggling alerting, which is more specific than the generic 'Update' verb. No contradiction with the provided annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the action and resource, then states the purpose. There is no redundant or filler content; every phrase contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update operation with full schema coverage and no output schema, the description provides the necessary context: what the tool does, its permission requirement, and its intended use. It could mention effects on existing alerting state, but the schema and tool scope make that omission minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions, including the key boolean disable_alerting. The description adds no additional parameter-level detail beyond the schema, so it meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update'), the resource ('device-level EventSource association'), and the specific purpose ('enable or disable alerting for an EventSource on a specific device'). This distinguishes it from related tools like update_eventsource, which operates at the EventSource level rather than the device-association level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to enable or disable alerting for an EventSource on a specific device,' giving clear context for when this tool is appropriate. It does not explicitly name alternatives or exclusion conditions, so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_device_groupA
Update a device/resource group (requires write permission). Custom properties are merged with existing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New group name | |
| group_id | Yes | Device group ID to update | |
| parent_id | No | New parent group ID (moves the group) | |
| applies_to | No | New AppliesTo expression for dynamic membership | |
| description | No | New group description | |
| disable_alerting | No | Disable alerting for all devices in this group | |
| custom_properties | No | Custom properties to set/update (merged with existing) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation. The description adds the write-permission requirement, which is useful authentication context, and clarifies that custom properties are merged rather than replaced. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the action and resource, then adds the two most decision-relevant details: permission requirement and merge behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 well-described parameters, the description provides the essential extra context: permission requirement and merge semantics. There is no output schema, so return-value expectations are not covered, but this is a minor gap for an update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters clearly. The description adds minimal parameter-level value beyond reinforcing the custom-properties merge behavior already stated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Update') and a specific resource ('device/resource group'), making the tool's purpose immediately identifiable. It does not explicitly name sibling tools like update_collector_group or update_recipient_group, so some differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when updating an existing device group and provides a prerequisite ('requires write permission'). It does not explicitly describe when to prefer this over create/delete or other update-group siblings, leaving usage context mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_device_instanceB
Update a monitored instance on a device (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| description | No | New description | |
| instance_id | Yes | Instance ID to update | |
| display_name | No | New display name | |
| stop_monitoring | No | Stop or resume monitoring for this instance | |
| disable_alerting | No | Disable or enable alerting for this instance | |
| device_datasource_id | Yes | Device-DataSource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the write-permission requirement, which is useful, but does not clarify side effects, whether the update is partial, or what happens when stop_monitoring or disable_alerting are toggled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the core purpose and the key prerequisite. No filler or redundant wording is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7-parameter schema with 100% coverage and annotations, the description provides only high-level purpose and permission. It does not explain the identifying role of the three required parameters or describe the response, but the schema compensates for most of this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description itself adds no parameter-specific meaning, which aligns with the baseline of 3 when the schema carries the semantic burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('a monitored instance on a device'), and adds a permission prerequisite. It distinguishes the tool from add/delete/get instance siblings, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like add_device_instance, delete_device_instance, or get_device_instances. The only context provided is the write-permission requirement, which is a prerequisite rather than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_device_propertyB
Update or create a device/resource property (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Device ID | |
| property_name | Yes | Property name | |
| property_value | Yes | Property value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-idempotent behavior. The description adds the requirement for write permission, which is useful context, but it doesn't disclose other behavioral aspects like whether an existing property is overwritten or if creation fails under certain conditions. This is adequate given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resource. It is concise and contains no wasted words, though it could potentially be expanded with minimal effort to include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write operation with three well-documented parameters and annotations covering safety and idempotency, the description is reasonably complete. It doesn't describe return values or edge cases, but given the lack of an output schema and the straightforward nature of the operation, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (device_id, property_name, property_value) have basic descriptions. The tool description adds no additional semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update or create') and the resource ('device/resource property'), distinguishing it from read-only siblings like get_device_property. However, 'resource property' is slightly ambiguous and could be more specific about what constitutes a property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that write permission is required but provides no explicit guidance on when to use this tool versus alternatives. It doesn't mention exclusions or conditions, leaving the agent to infer usage from the name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_diagnosticsourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server, including the script. PREFER update_logicmodule(type='diagnosticsource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL DiagnosticSource definition with all fields (will replace) | |
| diagnosticsource_id | Yes | DiagnosticSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical destructive behavior: 'Any field omitted from definition is BLANKED on the server, including the script.' This is a significant behavioral disclosure. However, it contradicts the annotation destructiveHint=false, which implies the tool is non-destructive. Blanking server fields is a destructive side effect, so the description conflicts with the annotation. Per scoring rules, this is an annotation contradiction, so score is 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no waste. Each sentence carries essential information: full-replace warning, alternative routing, and confirmation requirement. Front-loaded with 'RAW UPDATE'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested object and no output schema, the description covers the main behavior, safety, and routing to a safer alternative. It doesn't describe return values, but that is not essential for correct invocation. Still, a note on success/error return could improve completeness, so 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds crucial semantics beyond the schema: it explains that `definition` is a full replacement and that omitting fields blanks them, and that `confirm` must be true to proceed. The schema already documents parameters, but the description enriches understanding of the full-replace behavior, which is not fully captured by schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this is a raw full-replace update for a DiagnosticSource, specifically 'RAW UPDATE -- full-replace semantics'. It differentiates from update_logicmodule by naming it as the preferred alternative for partial updates. The verb and resource are explicit and distinguishable from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends update_logicmodule for partial updates and requires confirm=true to proceed. This provides clear when-to-use guidance and alternative routing with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_escalation_chainB
Update an escalation chain (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated name | |
| chain_id | Yes | Escalation chain ID | |
| description | No | Updated description | |
| destinations | No | Updated list of Chain objects. Same shape as on create: {type, period, stages}. See create_escalation_chain for the full Recipient shape and integration-routing form. | |
| cc_destinations | No | Updated CC Recipient list. | |
| enable_throttling | No | Updated throttling setting | |
| throttling_alerts | No | Updated number of alerts before throttling | |
| throttling_period | No | Updated throttling period in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds the write-permission requirement, which is useful context beyond the annotations. However, it doesn't disclose what happens to existing values not specified in the update (e.g., partial vs full replacement), which would be valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the operation and the key prerequisite. It's front-loaded with the action and resource. The cross-reference to create_escalation_chain in the schema is a useful addition without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with 8 parameters and no output schema, the description is adequate but not complete. It doesn't explain the update semantics (partial vs full replacement), what happens to omitted fields, or the response format. The cross-reference to create_escalation_chain for the Recipient shape helps, but the description could do more to guide correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters. The description adds minimal value beyond the schema, except for the 'destinations' parameter which references create_escalation_chain for the full Recipient shape. This cross-reference is helpful but the description doesn't add much semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('escalation chain'), which clearly identifies the operation. It doesn't explicitly distinguish from sibling tools like create_escalation_chain or delete_escalation_chain, but the verb 'Update' plus the resource makes the purpose clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'requires write permission', which gives some context about when this tool can be used. However, it doesn't explicitly state when to use this tool versus alternatives like create_escalation_chain or get_escalation_chain. The usage guidance is implied by the verb 'Update' 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.
update_eventsourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. PREFER update_logicmodule(type='eventsource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL EventSource definition with all fields (will replace) | |
| eventsource_id | Yes | EventSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the critical behavioral trait beyond annotations: 'Any field omitted from definition is BLANKED on the server.' It explains the confirm flag exists to 'prevent accidental field-blanking,' giving the agent a full picture of the mutation's danger profile. The destructiveHint=false annotation sits in mild tension with the blanking warning, but the confirm gate and schema warning are consistent with it not being a categorically destructive operation, so this is not a true contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, all load-bearing: the warning is front-loaded in sentence one, the danger mechanism in sentence two, the alternative in sentence three, and the prerequisite in sentence four. There is zero filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the operation semantics, the destructive failure mode, the alternative tool, and the required confirmation flag. It does not describe return values or error behavior, which would be nice, but the critical decision-making context an agent needs to call this safely is fully present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the schema already describes all three parameters well. The description adds value by making the `definition` semantics unmistakable ('any field omitted is BLANKED'), which is stronger than the schema's 'will replace' phrasing. This explicit blanking consequence is exactly the kind of param meaning an agent needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'RAW UPDATE -- full-replace semantics,' naming the verb (update), resource (eventsource), and the defining behavior in one compact phrase. It clearly distinguishes itself from the sibling update_logicmodule by contrasting raw full-replace behavior with partial updates. An agent can tell exactly what this tool does without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'PREFER update_logicmodule(type='eventsource', id, changes, mode='preview') for partial updates with diff preview.' It also states the hard prerequisite 'Requires confirm=true to proceed,' leaving no ambiguity about when and how to invoke this tool versus the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_http_integrationA
Update a Custom HTTP Delivery integration via PATCH. Only fields explicitly provided are sent; omitted fields keep their current server values. (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| name | No | ||
| ack_url | No | ||
| headers | No | ||
| ack_body | No | ||
| password | No | ||
| username | No | ||
| clear_url | No | ||
| ack_method | No | ||
| alert_body | No | ||
| clear_body | No | ||
| update_url | No | ||
| ack_headers | No | ||
| description | No | ||
| http_method | No | ||
| update_body | No | ||
| clear_method | No | ||
| extra_fields | No | ||
| clear_headers | No | ||
| update_method | No | ||
| integration_id | Yes | Integration ID | |
| update_headers | No | ||
| alert_data_type | No | ||
| alert_body_format | No | ||
| enabled_lifecycles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds valuable context: it discloses the PATCH semantics (only provided fields sent) and the write-permission requirement. This goes beyond annotations and is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core purpose, then the behavioral nuance and permission. No wasted words; efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 25 parameters, no output schema, and only a generic mention of partial updates, the description is too thin. It does not cover expected response behavior, parameter constraints, or field formats, leaving agents with insufficient context for a complex mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 4% (only integration_id is described). The description mentions 'fields' generically but does not explain any specific parameter. It does not compensate for the low schema coverage, leaving the 24 other parameters largely undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update'), the resource ('Custom HTTP Delivery integration'), and the method ('via PATCH'). It is specific and distinguishes from sibling tools like create_http_integration and delete_integration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the partial-update behavior and the permission requirement, but it does not explicitly state when to use this tool over alternatives (e.g., create vs update). The context of siblings implies usage, but no explicit routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_logicmoduleA
Safe partial update for LogicMonitor source types (configsource, datasource, eventsource, logsource, propertysource, topologysource). Exports the current full definition, deep-merges your changes onto it, validates required fields, and either returns a dry-run diff (mode='preview', default) or applies the merged definition (mode='apply'). PREFER this over the raw update_ tools for partial updates -- the raw tools are full-replace and will blank any field omitted from the payload (two prior production incidents).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | LogicModule ID | |
| mode | No | 'preview' returns a dry-run diff without writing (default). 'apply' writes the merged definition via the underlying update_<type> handler. | preview |
| type | Yes | Source type to update | |
| changes | Yes | Partial update -- only the fields to change. Use `null` as a value to explicitly delete a key. Lists replace wholesale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the full operational flow: exporting the current definition, deep-merging changes, validating required fields, and either returning a dry-run diff (preview, default) or applying the merged definition. This gives the agent an accurate mental model of the tool's side effects and safety posture beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, with no wasted sentences; the key preference hint is clearly emphasized. It loses a point because the parenthetical type list duplicates schema information while being incomplete, and the long single paragraph could be broken into more scannable pieces.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write-capable tool with no output schema, the description explains what preview and apply modes return and how the update is applied, which is highly complete. The small inconsistency in the type list and the lack of any mention of permissions or error conditions keep it from being fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all four parameters, the description adds crucial behavioral semantics: how the 'changes' object is interpreted, the meaning of null values (explicit deletion), and that lists replace wholesale. This goes well beyond the baseline established by the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a safe partial update tool for LogicMonitor source types and distinguishes it from the raw update_<type> siblings. However, the parenthetical list of source types omits diagnosticsource and remediationsource even though the input schema's enum allows them, creating a slight ambiguity about the tool's full supported scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to PREFER this tool over raw update_<type> tools for partial updates. It explains the failure mode of the alternatives (full-replace, blanking omitted fields) and reinforces the warning with two production incidents, making the when-to-use decision unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_logsourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. PREFER update_logicmodule(type='logsource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL LogSource definition with all fields (will replace) | |
| logsource_id | Yes | LogSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is transparent, warning that omitted fields are BLANKED and that confirm=true is required. However, annotations declare destructiveHint=false, which directly contradicts the destructive field-blanking behavior described. This is an annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. The critical full-replace warning is front-loaded, and the safer alternative plus confirmation requirement are stated compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with complete schema descriptions and no output schema, the description fully covers the operation, its destructive edge case, the required confirmation, and the preferred sibling tool for partial updates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining full-replace semantics and that omitted definition fields are blanked, reinforcing the danger the schema only hints at with 'will replace'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a RAW UPDATE with full-replace semantics for a LogSource definition. It clearly differentiates itself from the sibling update_logicmodule by contrasting full-replace vs partial updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to prefer update_logicmodule(type='logsource', id, changes, mode='preview') for partial updates with diff preview, and requires confirm=true to proceed. This gives the agent unambiguous selection criteria and invocation requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ops_noteB
Update an ops note (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | New note text | |
| tags | No | New tags (replaces existing) | |
| note_id | Yes | Ops note ID to update | |
| group_ids | No | New device group IDs to scope the note to | |
| device_ids | No | New device IDs to scope the note to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-idempotent mutation, so the description's additional burden is lighter. It adds that write permission is required, which is useful, but it does not mention that fields like tags or device/group scopes replace existing values or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler, and the permission detail is front-loaded in parentheses. It is economical, though arguably too terse given the operation's variable semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and annotations, an agent can construct a valid call using note_id and optional update fields, and the permission hint is a useful precondition. Missing context includes whether unspecified fields are preserved, how replacements work, and what a successful update returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters have schema descriptions, including explicit notes like 'New tags (replaces existing)', so the schema already carries the parameter-meaning burden. The tool description adds no parameter-level detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and object: 'Update an ops note'. The parenthetical also signals that this is a privileged mutation. However, the core phrasing closely mirrors the tool name and does not describe what can be changed or how 'update' behaves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the write-permission requirement. There is no mention of when to use this versus get_ops_note, add_ops_note, or delete_ops_note, and no exclusions or alternative conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_propertysourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. PREFER update_logicmodule(type='propertysource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL PropertySource definition with all fields (will replace) | |
| propertysource_id | Yes | PropertySource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is actually very transparent: it warns about full-replace semantics, field blanking, and the confirm guard. However, the annotations declare destructiveHint=false, while the described behavior of BLANKING omitted fields on the server is a destructive overwrite. This is an annotation contradiction, so the score is 1 per the scoring rule.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded: the dangerous full-replace semantics are stated first, the blanking consequence second, the safer alternative third, and the required confirmation last. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description gives an agent everything needed to invoke it correctly: the full-replace contract, the destructive risk, the required confirm flag, and a pointer to the safer partial-update alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds crucial meaning beyond the schema by explaining that any field omitted from definition is blanked and that confirm must be true, which materially changes how the parameters should be used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'RAW UPDATE -- full-replace semantics', naming a specific verb, resource, and operation mode. It also distinguishes itself from update_logicmodule, so an agent can tell exactly what this tool does without examining schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to PREFER update_logicmodule(type='propertysource', id, changes, mode='preview') for partial updates and specifies that confirm=true is required. This gives an agent clear routing guidance and a concrete prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recipient_groupA
Update a recipient group (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated name. Sent as groupName to the LM v3 API. | |
| group_id | Yes | Recipient group ID | |
| recipients | No | Replacement recipient list. When provided, LM replaces the group's current recipient set with this list. | |
| description | No | Updated description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which the description does not contradict. The description explicitly states 'requires write permission', which adds behavioral context about authorization beyond the annotations. However, it does not disclose potential side effects like full replacement of recipients (but that is in the schema) or any rate limits. The permission note is a positive addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and resource, and the permission requirement is included without unnecessary detail. It is appropriately sized for a simple tool, though it could arguably omit the parenthetical and still be clear. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity)Skip the rest of the sentence. The description clearly states the action and permission requirement, and the schema fully documents parameters. The output schema is absent, but this is a simple update tool where the return value is likely a standard success response. No major information is missing for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description does not explicitly describe parameters, but the schema itself already documents each parameter thoroughly, including the behavioral note that 'recipients' replaces the current set. The description adds no additional parameter semantics, but since the schema is comprehensive, the baseline of 3 is appropriate; the extra credit reflects the schema's quality, not the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update a recipient group') and the resource, and it is distinguishable from siblings like create_recipient_group and delete_recipient_group by the verb. The description includes a precise reference to the required write permission, adding context that is not just a restatement of the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates that the tool is for updating an existing group (as opposed to creating or deleting), but it does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites (e.g., must have the group_id) or scenarios where another tool would be more appropriate. The mention of write permission is a useful prerequisite but not a full guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_remediationsourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server, including the script. PREFER update_logicmodule(type='remediationsource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL RemediationSource definition with all fields (will replace) | |
| remediationsource_id | Yes | RemediationSource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is highly transparent about full-replace semantics and field-blanking, but it directly contradicts the annotation destructiveHint=false. Blanking omitted fields, including the script, is a destructive side effect, so the annotation misrepresents the tool's behavior. Per the scoring rule, this contradiction forces a score of 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-load the most critical warning ('RAW UPDATE -- full-replace semantics'), then immediately explain the destructive consequence, the safer alternative, and the required confirmation. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the critical operational context: replacement semantics, field-blanking consequences, the safer partial-update alternative, and the confirmation requirement. An agent has everything needed to avoid catastrophic misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, but the description adds important semantic detail beyond the schema: omitted definition fields are blanked on the server, including the script, and confirm=true is required as an explicit guard against accidental blanking. This clarifies the real meaning of the definition parameter beyond 'will replace'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a full-replace update of a RemediationSource, using explicit 'RAW UPDATE' and 'full-replace semantics' language. It also distinguishes itself from the sibling update_logicmodule tool by naming the exact alternative for partial updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to prefer this tool versus the alternative: use it for full replacement, prefer update_logicmodule for partial updates with diff preview. It also specifies the confirm=true prerequisite to proceed, leaving no ambiguity about safe invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_report_scheduleA
Update a report's schedule (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| cron | No | Cron expression, e.g. 0 8 * * 1 | |
| enabled | No | Pass false to clear (disable) the schedule | |
| timezone | No | Schedule timezone -> scheduleTimezone | |
| report_id | Yes | Report ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a mutating, non-idempotent, non-destructive operation, so the description does not need to restate that. It adds the useful auth requirement 'requires write permission', but it does not describe side effects such as whether the entire schedule is replaced or how partial updates behave. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the action and the key precondition. There is no redundancy or filler, and the parenthetical 'requires write permission' earns its place as an important operational constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with one required parameter and fully documented optional parameters, the description plus schema is adequate for an agent to invoke it correctly. It lacks return-value detail and explicit interplay between cron, enabled, and timezone, but the schema covers those fields and no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (report_id, cron, enabled, timezone) already explained in the input schema. The description adds no additional parameter semantics beyond the write-permission context, so the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair, 'Update a report's schedule', which clearly identifies the operation and target resource. It is distinguishable from sibling tools like run_report, get_scheduled_reports, and create_report. The parenthetical also signals the write-operation context without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by stating the operation and a prerequisite, 'requires write permission', which helps an agent decide if invoking it is appropriate. However, it does not explicitly name alternatives or exclusions, such as using create_report for initial schedule setup or get_scheduled_reports for inspection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sdtA
Update a scheduled downtime (requires write permission). Uses fetch-modify-PUT to preserve unmodified fields.
| Name | Required | Description | Default |
|---|---|---|---|
| sdt_id | Yes | SDT ID to update | |
| comment | No | New SDT comment | |
| end_date_time | No | New end time in epoch milliseconds | |
| start_date_time | No | New start time in epoch milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by explaining that the tool uses a fetch-modify-PUT pattern to preserve unmodified fields. This is critical behavioral context for an agent: it implies partial updates are safe and omitted fields will not be reset. It also adds the write-permission requirement, which the annotations do not express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. It front-loads the core purpose, then adds a useful implementation note in the second clause. Every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description provides sufficient context: what is updated, the permission needed, and the partial-update behavior. It does not describe return values or edge cases, but the schema handles parameter details, and the annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all four parameters, so the baseline is 3. The description adds meaningful semantic value by stating that unmodified fields are preserved, which tells the agent that omitting optional parameters like comment or start_date_time will not clear those fields. It does not elaborate on individual parameters beyond the schema, but the fetch-modify-PUT explanation enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource phrase, 'Update a scheduled downtime,' which clearly identifies the operation. It distinguishes itself from sibling tools like create_sdt and delete_sdt through the verb 'Update' while naming the exact resource being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives such as create_sdt or delete_sdt. It only notes a write-permission prerequisite, which is a precondition rather than routing guidance. An agent must infer usage from the tool's name and verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_topologysourceA
RAW UPDATE -- full-replace semantics. Any field omitted from definition is BLANKED on the server. PREFER update_logicmodule(type='topologysource', id, changes, mode='preview') for partial updates with diff preview. Requires confirm=true to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. Defaults to false to prevent accidental field-blanking. Use update_logicmodule for safe partial updates. | |
| definition | Yes | FULL TopologySource definition with all fields (will replace) | |
| topologysource_id | Yes | TopologySource ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the destructive blanking behavior, the full-replace semantics, and the safety confirm requirement. It does not contradict any annotation and adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences, front-loaded with the key 'RAW UPDATE -- full-replace semantics' warning, followed by the alternative and confirmation requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive full-replace tool with no output schema, the description covers all essential aspects: the semantics, the risk of omitted fields, the safer alternative, and the confirm flag. An agent can correctly decide when to use it and how to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema already covers all parameters, the description adds meaning by explaining the definition parameter's full-replace nature and the confirm parameter's role in preventing accidental field-blanking. This reinforces and adds rationale beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a full-replace update on a TopologySource. It specifies the verb 'UPDATE', the resource, and the critical semantics of blanking omitted fields, which distinguishes it from the sibling update_logicmodule that handles partial updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool (full-replace) and when to prefer update_logicmodule for partial updates with diff preview. It also notes the requirement of confirm=true, leaving no ambiguity about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_userB
Update a user in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | New admin note | |
| No | New email | ||
| phone | No | New phone number | |
| roles | No | New role IDs (replaces existing) | |
| user_id | Yes | User ID to update | |
| api_only | No | API-only flag | |
| last_name | No | New last name | |
| sms_email | No | New SMS email | |
| first_name | No | New first name | |
| two_fa_enabled | No | Two-factor flag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint: false). The description adds the permission requirement, which is minor. It does not disclose the behavior of partial updates (e.g., whether unspecified fields remain unchanged) or that roles 'replaces existing' (though that is in the schema). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no redundancy. It front-loads the primary purpose and includes a critical permission note. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, the description is too sparse. It does not clarify whether the update is partial or full replacement, how missing optional fields are handled, or any constraints (e.g., role IDs must be valid). The absence of an output schema increases the need for description to explain response behavior, which is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 10 parameters described. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update a user in LogicMonitor'), specifying the verb and resource. It distinguishes from sibling tools like create_user, delete_user, and get_user by naming the exact operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage hint is 'requires write permission', which is a prerequisite, not guidance on when to choose this tool over alternatives. It does not mention when to use update_user vs create_user or get_user, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_websiteB
Update a website check in LogicMonitor (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated name | |
| website_id | Yes | Website ID to update | |
| description | No | Updated description | |
| is_internal | No | Updated internal website flag | |
| disable_alerting | No | Whether to disable alerting | |
| polling_interval | No | Updated polling interval in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint false) and not idempotent or destructive. The description adds the permission requirement, which is useful context beyond annotations. It does not contradict annotations, and there is no additional behavioral detail such as side effects or partial updates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the verb and resource front-loaded. It is concise with no filler words. It could include more context, but it is efficient and appropriately sized for a simple update tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters and no output schema, yet the description provides no information about the return value, error handling, or any prerequisites beyond write permission. While the schema covers parameter details, the description lacks broader context such as whether updates are partial or full replacements, which an agent needs for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description does not add any parameter-specific meaning beyond the schema, so the baseline of 3 is appropriate. It correctly implies the tool modifies fields like name, description, etc., but adds no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'Update' and resource 'website check' in LogicMonitor, which distinguishes it from sibling tools like create_website, delete_website, and get_websites. However, it could be more explicit about what fields are updatable beyond the generic term, but the verb-resource combination is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ('requires write permission') but offers no guidance on when to use this tool versus other update tools (e.g., update_device, update_dashboard) or when to prefer create/delete. It does not mention exclusions or alternatives, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_widgetB
Update a widget (requires write permission)
| Name | Required | Description | Default |
|---|---|---|---|
| row | No | New start row | |
| name | No | New name | |
| config | No | New configuration | |
| col_span | No | New width in columns (1-12) | |
| row_span | No | New height in rows | |
| widget_id | Yes | Widget ID | |
| description | No | New description | |
| column_index | No | New start column (1-12) | |
| dashboard_id | Yes | Dashboard ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds the useful write-permission requirement, which is not present in annotations. However, it does not disclose whether the update is partial, whether unspecified fields are reset, or how the operation behaves if a widget is not found, leaving 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the action and the required permission. It contains no filler or redundancy. While it is terse, it earns its place by flagging the write-permission requirement without repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema documents all 9 parameters and the annotations cover read/write and destructive behavior, so the description does not need to repeat those. However, it is missing important update semantics, such as whether only provided fields are changed or the entire widget is replaced. For a mutation tool, that level of behavioral clarity would improve completeness. Overall, the description is minimally adequate but leaves key edge-case expectations unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a meaningful description such as "New name" or "New width in columns". The tool description itself contributes no parameter-level meaning. Per the rubric, the high schema coverage sets the baseline at 3, and the description does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ("Update a widget") that clearly distinguishes it from sibling operations like get_widget, add_widget, and delete_widget. It is not a tautology and does not mislead. It could have been more explicit about which attributes are updatable, but the schema already enumerates them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use update_widget versus alternatives, nor does it mention prerequisites or exclusions. The only contextual hint is the write-permission requirement. With many CRUD siblings available, an agent is left to infer when this tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
273 tool updates
v4.2.0- First observed
acknowledge_alert - First observed
add_alert_note - First observed
add_device_instance - First observed
add_ops_note - First observed
add_widget - First observed
analyze_blast_radius - First observed
audit_network_monitoring_coverage - First observed
bulk_acknowledge_alerts - First observed
bulk_create_device_sdt - First observed
bulk_delete_devices - First observed
bulk_delete_sdt - First observed
calculate_availability - First observed
calculate_error_budget - First observed
capacity_plan - First observed
classify_trend - First observed
clear_session_context - First observed
collect_device_config - First observed
compare_to_baseline - First observed
correlate_alerts - First observed
correlate_changes - First observed
correlate_metrics - First observed
create_action_chain - First observed
create_action_rule - First observed
create_alert_rule - First observed
create_collector_group - First observed
create_configsource - First observed
create_dashboard - First observed
create_dashboard_group - First observed
create_datasource - First observed
create_device - First observed
create_device_group - First observed
create_diagnosticsource - First observed
create_escalation_chain - First observed
create_eventsource - First observed
create_http_integration - First observed
create_logsource - First observed
create_propertysource - First observed
create_recipient_group - First observed
create_remediationsource - First observed
create_report - First observed
create_sdt - First observed
create_topologysource - First observed
create_user - First observed
create_website - First observed
create_website_group - First observed
delete_action_chain - First observed
delete_action_rule - First observed
delete_alert_rule - First observed
delete_collector - First observed
delete_collector_group - First observed
delete_configsource - First observed
delete_dashboard - First observed
delete_dashboard_group - First observed
delete_datasource - First observed
delete_device - First observed
delete_device_group - First observed
delete_device_instance - First observed
delete_diagnosticsource - First observed
delete_escalation_chain - First observed
delete_eventsource - First observed
delete_integration - First observed
delete_logsource - First observed
delete_ops_note - First observed
delete_propertysource - First observed
delete_recipient_group - First observed
delete_remediationsource - First observed
delete_report - First observed
delete_sdt - First observed
delete_session_variable - First observed
delete_topologysource - First observed
delete_user - First observed
delete_website - First observed
delete_website_group - First observed
delete_widget - First observed
detect_alert_burst - First observed
detect_change_points - First observed
detect_seasonality - First observed
detect_site_outage - First observed
diagnose - First observed
execute_diagnostic - First observed
execute_remediation - First observed
export_alert_rule - First observed
export_configsource - First observed
export_dashboard - First observed
export_datasource - First observed
export_diagnosticsource - First observed
export_escalation_chain - First observed
export_eventsource - First observed
export_logsource - First observed
export_propertysource - First observed
export_remediationsource - First observed
forecast_metric - First observed
get_access_group - First observed
get_access_groups - First observed
get_action_chain - First observed
get_action_chains - First observed
get_action_rule - First observed
get_action_rules - First observed
get_active_sdts - First observed
get_alert_details - First observed
get_alert_rule - First observed
get_alert_rules - First observed
get_alert_statistics - First observed
get_alerts - First observed
get_api_token - First observed
get_api_token_audit - First observed
get_api_tokens - First observed
get_audit_logs - First observed
get_batchjob - First observed
get_batchjobs - First observed
get_change_audit - First observed
get_collector - First observed
get_collector_group - First observed
get_collector_groups - First observed
get_collector_health - First observed
get_collectors - First observed
get_configsource - First observed
get_configsource_update_reasons - First observed
get_configsources - First observed
get_cost_recommendation - First observed
get_cost_recommendation_categories - First observed
get_cost_recommendations - First observed
get_dashboard - First observed
get_dashboard_group - First observed
get_dashboard_groups - First observed
get_dashboard_widgets - First observed
get_dashboards - First observed
get_datasource - First observed
get_datasources - First observed
get_device - First observed
get_device_batchjobs - First observed
get_device_config - First observed
get_device_config_version - First observed
get_device_connections - First observed
get_device_data - First observed
get_device_datasources - First observed
get_device_eventsources - First observed
get_device_group - First observed
get_device_groups - First observed
get_device_instances - First observed
get_device_interfaces - First observed
get_device_logsources - First observed
get_device_neighbors - First observed
get_device_properties - First observed
get_device_property - First observed
get_devices - First observed
get_diagnostic_remediation_assignments - First observed
get_diagnostic_remediation_results - First observed
get_diagnosticsource - First observed
get_diagnosticsources - First observed
get_escalation_chain - First observed
get_escalation_chains - First observed
get_eventsource - First observed
get_eventsources - First observed
get_graph_data - First observed
get_idle_resources - First observed
get_integration - First observed
get_integrations - First observed
get_interface_metrics - First observed
get_link_flaps - First observed
get_login_audit - First observed
get_logsource - First observed
get_logsources - First observed
get_metric_anomalies - First observed
get_netscan - First observed
get_netscans - First observed
get_network_flows - First observed
get_oid - First observed
get_oids - First observed
get_ops_note - First observed
get_ops_notes - First observed
get_otlp_label_values - First observed
get_otlp_metric_labels - First observed
get_otlp_metric_names - First observed
get_power_events - First observed
get_propertysource - First observed
get_propertysources - First observed
get_recipient_group - First observed
get_recipient_groups - First observed
get_reference - First observed
get_remediationsource - First observed
get_remediationsources - First observed
get_report - First observed
get_report_execution - First observed
get_report_groups - First observed
get_reports - First observed
get_role - First observed
get_roles - First observed
get_scheduled_downtime_jobs - First observed
get_scheduled_reports - First observed
get_service - First observed
get_service_groups - First observed
get_services - First observed
get_session_context - First observed
get_session_variable - First observed
get_top_talkers - First observed
get_topology_map - First observed
get_topologysource - First observed
get_topologysources - First observed
get_trace_operation_metrics - First observed
get_trace_operations - First observed
get_trace_service - First observed
get_trace_service_alerts - First observed
get_trace_service_datasources - First observed
get_trace_service_metrics - First observed
get_trace_service_properties - First observed
get_trace_services - First observed
get_upcoming_sdts - First observed
get_user - First observed
get_users - First observed
get_website - First observed
get_website_data - First observed
get_website_groups - First observed
get_websites - First observed
get_widget - First observed
get_workflow - First observed
health_check - First observed
import_appliesto_function - First observed
import_configsource - First observed
import_datasource - First observed
import_diagnosticsource - First observed
import_eventsource - First observed
import_jobmonitor - First observed
import_logsource - First observed
import_propertysource - First observed
import_topologysource - First observed
ingest_logs - First observed
list_sdts - First observed
list_session_history - First observed
portal_overview - First observed
push_metrics - First observed
query_otlp_metrics - First observed
recover_device - First observed
run_netscan - First observed
run_report - First observed
save_baseline - First observed
score_alert_noise - First observed
score_device_health - First observed
search_tools - First observed
set_action_rule_status - First observed
set_session_variable - First observed
terraform_generate - First observed
triage - First observed
update_action_chain - First observed
update_action_rule - First observed
update_alert_rule - First observed
update_collector - First observed
update_collector_group - First observed
update_configsource - First observed
update_dashboard - First observed
update_dashboard_group - First observed
update_datasource - First observed
update_device - First observed
update_device_eventsource - First observed
update_device_group - First observed
update_device_instance - First observed
update_device_property - First observed
update_diagnosticsource - First observed
update_escalation_chain - First observed
update_eventsource - First observed
update_http_integration - First observed
update_logicmodule - First observed
update_logsource - First observed
update_ops_note - First observed
update_propertysource - First observed
update_recipient_group - First observed
update_remediationsource - First observed
update_report_schedule - First observed
update_sdt - First observed
update_topologysource - First observed
update_user - First observed
update_website - First observed
update_widget
TDQS
Scored across 273 tools
Many tools follow a clear resource+action pattern, but overlapping families exist, such as get_services vs get_trace_services, get_collectors vs get_collector_health, and get_datasources vs get_device_datasources, which can cause misselection. Descriptions often clarify the distinction, but the sheer 273-tool surface makes it easy to pick the wrong variant anyway.
The CRUD tools consistently use verb_noun patterns like get_, create_, update_, delete_, import_, and export_, but listing is inconsistent—list_sdts vs get_datasources—and several composite tools use plain nouns or phrases like triage, health_check, and detect_site_outage, breaking the pattern.
273 tools is far beyond the 50+ threshold for an extreme mismatch. Even for a broad platform like LogicMonitor, the surface is overwhelming and includes many near-duplicate variants such as raw update_* tools versus update_logicmodule and numerous get_* list/detail pairs.
The server covers a very wide domain—devices, alerts, dashboards, reports, traces, network, OTLP, and audit—but notable gaps remain: roles, API tokens, and access groups are read-only, website groups have no update tool, integration creation is limited to HTTP delivery, and batch jobs have no lifecycle operations beyond retrieval.
Maintenance
Related MCP Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Governed app access for AI agents: 1,000+ apps & 12,000+ tools via Code Mode MCP.
- StackOneOAuthcom.stackone
Give AI agents 30,000+ safe, token-optimized actions across Workday, SAP, Oracle + hundreds more.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to multi-vendor network devices for tasks like configuration management, health checks, and topology discovery through 35 specialized tools. It enables natural language control over platforms including Cisco, Juniper, and Nokia using SSH, NETCONF, and SNMP protocols.11MIT
- AlicenseAqualityDmaintenanceMCP server enabling AI assistants to interact with your LogicMonitor, providing 125 tools for comprehensive monitoring and management operations.7049 npm12AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants and automation tools to manage Microsoft 365, Entra ID, and Intune resources through 32 tools for user/device/file management and infrastructure monitoring.6MIT
- AlicenseNot gradedqualityAmaintenanceProvides secure access to the LogicMonitor API, enabling AI assistants to manage monitoring infrastructure through natural language commands.16 npm6Mozilla Public 2.0