Skip to main content
Glama
monitoringartist

LogicMonitor MCP Server

LogicMonitor MCP Server

Model Context Protocol (MCP) server for LogicMonitor - enables AI assistants to interact with your LogicMonitor.

CI Release npm version License TypeScript Node

IMPORTANT

🛠️ Managed & Supported by Monitoring Artist

This MCP server is an independent, community-driven innovation by Monitoring Artist.

Official Support Disclaimer: This project is not an official LogicMonitor product and is not covered by LogicMonitor’s standard support tiers.

Need Enterprise-Grade Reliability? > Monitoring Artist provides professional implementation, custom feature development, and dedicated support for this integration. Partner with us for expert solutions.

Features

  • 125 MCP Tools for comprehensive LogicMonitor operations (73 read-only, 52 write)

  • Unified Server: Single server implementation supporting all transport modes (STDIO, SSE, HTTP)

  • Multiple Transport Modes: STDIO for local use, SSE/HTTP for remote access

  • Flexible Authentication: No auth (dev), bearer token, or OAuth/OIDC

  • CSRF Protection: Automatic CSRF protection for session-based authentication

  • Read-Only Mode: Safe monitoring without modification capabilities (enabled by default)

  • Flexible Configuration: CLI flags, environment variables, or .env file

  • Debug Logging: JSON or human-readable formats with detailed request/response logging

  • Tool Filtering: Enable specific tools or disable search functionality

  • Rate Limiting: Automatic retry with exponential backoff

  • Batch Operations: Process multiple resources efficiently

  • Smart Batching: Adaptive concurrency that automatically adjusts to API rate limits

  • TLS/HTTPS Support: Optional TLS for secure remote access

Related MCP server: domotz-mcp

Images

Cursor Prompt - Resource Check Demo

High‑level demonstration of using the LogicMonitor MCP server in Cursor, showing how to execute a LogicMonitor resource check using an MCP prompt with the argument "www.google.com" (a resource in LogicMonitor). The agent has knowledge about available MCP tools and uses them in a self‑correcting way:

Cursor Prompt Resource Check

Cursor Tools

Screenshot showing the available LogicMonitor MCP tools within Cursor:

Cursor Tools

Grafana Assistant Tools

Screenshot showing the available LogicMonitor MCP tools within Grafana Assistant:

Grafana Assistant Tools

VS Code Tools

Screenshot showing the available LogicMonitor MCP tools within Visual Studio Code:

VS Code Tools

Installation Options

Local LogicMonitor MCP server

Run LogicMonitor MCP Server locally with STDIO transport for Claude Desktop:

Install with Docker in VS Code Install with npx in VS Code Install with Docker in WSL in VS Code Install with npx in WSL in VS Code Install with Docker in Cursor Install with npx in Cursor Install with Docker in WSL in Cursor Install with npx in WSL in Cursor npm Claude Desktop

# Quick start with npx (no installation needed)
npx logicmonitor-mcp-server

# Or install globally
npm install -g logicmonitor-mcp-server
logicmonitor-mcp-server

Add to Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "logicmonitor": {
      "command": "npx",
      "args": ["-y", "logicmonitor-mcp-server"],
      "env": {
        "LM_COMPANY": "mycompany",
        "LM_BEARER_TOKEN": "your-bearer-token-here"
      },
      "type": "stdio"
    }
  }
}

Best for: Personal use, Claude Desktop integration, local development

Example Remote LogicMonitor MCP server

Run LogicMonitor MCP Server remotely with SSE or HTTP transport for web-based access:

Install as remote MCP in VS Code

# Quick start with Docker
docker run -d -p 3000:3000 \
  -e LM_COMPANY=mycompany \
  -e LM_BEARER_TOKEN=your-token \
  -e MCP_TRANSPORT=streamable-http \
  -e OAUTH_PROVIDER=none \
  monitoringartist/logicmonitor-mcp-server

# Available container images

| Registry | Pull command | Notes |
| --- | --- | --- |
| GitHub Container Registry | `docker pull ghcr.io/monitoringartist/logicmonitor-mcp-server:<tag>` | Tags include `latest`, `vX.Y.Z`, `X.Y`, and `X`. |
| Docker Hub | `docker pull monitoringartist/logicmonitor-mcp-server:<tag>` | Mirrors the same tags as GHCR. |

# Or use Docker Compose for production
curl -o docker-compose.yml https://raw.githubusercontent.com/monitoringartist/logicmonitor-mcp-server/main/docker-compose.yml
cp env.example .env  # Configure your credentials
docker-compose up -d logicmonitor-mcp-http

Best for: Web applications, remote access, multiple users, enterprise deployments, where admin controls access.

Quick Start

Prerequisites

  • Node.js >= 18 (or Docker)

  • LogicMonitor account with API access

  • LogicMonitor API Bearer Token

Installation

Option A: Node.js

# Clone the repository
git clone https://github.com/monitoringartist/logicmonitor-mcp-server.git
cd logicmonitor-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

Option B: Docker

# Clone the repository
git clone https://github.com/monitoringartist/logicmonitor-mcp-server.git
cd logicmonitor-mcp-server

# Build Docker image
docker build -t logicmonitor-mcp-server .

# Or use Docker Compose
cp env.example .env
# Edit .env with your credentials
docker-compose up -d logicmonitor-mcp-http

Configuration

Choose one of three methods to configure (listed in order of precedence):

export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-bearer-token-here
npm start

Option 2: .env File

# Copy the example file
cp env.example .env

# Edit .env with your credentials
nano .env

# Run the server
npm start

Option 3: CLI Flags

npm start -- --lm-company mycompany --lm-bearer-token "your-token"

CLI Reference

Transport Options

Flag

Environment Variable

Default

Description

-t, --transport <type>

MCP_TRANSPORT

stdio

Transport type: stdio, sse, or streamable-http

--address <host:port>

MCP_ADDRESS

localhost:3000

Server address for SSE/HTTP transports

--base-path <path>

MCP_BASE_PATH

-

Base path for the server

--endpoint-path <path>

MCP_ENDPOINT_PATH

/mcp

Endpoint path for streamable-http

TLS Configuration (streamable-http transport only)

Flag

Environment Variable

Default

Description

--server.tls-cert-file <path>

MCP_TLS_CERT_FILE

-

Path to TLS certificate file for HTTPS. Server uses HTTPS if both cert and key are configured

--server.tls-key-file <path>

MCP_TLS_KEY_FILE

-

Path to TLS private key file for HTTPS. Both cert and key required for HTTPS

Note: By default (when TLS is not configured), the server listens on HTTP protocol. When both certificate and key files are provided, the server automatically switches to HTTPS protocol only.

Debug and Logging

Flag

Environment Variable

Default

Description

--debug

MCP_DEBUG=true

false

Enable debug mode with detailed logging

--log-format <format>

MCP_LOG_FORMAT

human

Log format: json or human

--log-level <level>

MCP_LOG_LEVEL

info

Log level: debug, info, warn, or error

Tool Configuration

Flag

Environment Variable

Default

Description

--enabled-tools <list>

MCP_ENABLED_TOOLS

all

Comma-separated list of enabled tools

--read-only

MCP_READ_ONLY

true

Enable only read-only tools (safer). Set MCP_READ_ONLY=false to enable write operations

LogicMonitor API (Required)

Flag

Environment Variable

Description

--lm-company <name>

LM_COMPANY

Your LogicMonitor company/account name (subdomain). Example: if your portal is mycompany.logicmonitor.com, use mycompany

--lm-bearer-token <token>

LM_BEARER_TOKEN

LogicMonitor API Bearer Token. Generate at: Settings > Users & Roles > API Tokens

MCP Server Authentication (Optional - for SSE/HTTP transports only)

Flag

Environment Variable

Default

Description

--mcp-bearer-token <token>

MCP_BEARER_TOKEN

-

Static bearer token for authenticating clients connecting to the MCP server. Used as an alternative or supplement to OAuth for remote access via SSE/HTTP transports. Not required for STDIO transport.

-

OAUTH_PROVIDER

none

OAuth provider type: none (disabled), github, google, azure, okta, auth0, or custom. Set to none or leave unset to disable OAuth authentication.

Note: This is for authenticating to the MCP server, not for LogicMonitor API access.

Authentication Modes:

  • No Authentication (default): If neither MCP_BEARER_TOKEN nor OAuth is configured (OAUTH_PROVIDER=none), unauthenticated access is allowed. Suitable for development/testing only.

  • Bearer Token: Simple static token authentication - set MCP_BEARER_TOKEN

  • OAuth/OIDC: Enterprise authentication - configure OAUTH_PROVIDER and related settings (see env.example)

  • Both: Both authentication methods can work simultaneously

Usage Examples

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "logicmonitor": {
      "command": "node",
      "args": [
        "/path/to/logicmonitor-mcp-server/build/servers/index.js"
      ],
      "env": {
        "LM_COMPANY": "mycompany",
        "LM_BEARER_TOKEN": "your-bearer-token",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

Note: The MCP_TRANSPORT=stdio is optional as it's the default, but included for clarity.

SSE Transport (Remote Access)

# Start SSE server with debug logging
npm start -- --transport sse --address localhost:3000 --debug

# Or using environment variables
export MCP_TRANSPORT=sse
export MCP_ADDRESS=localhost:3000
export MCP_DEBUG=true
npm start

# Or use the convenience script
npm run start:sse

Note: For SSE/HTTP transports, authentication is optional but recommended:

  • Development/Testing: No authentication required (default with OAUTH_PROVIDER=none)

  • Production: Configure MCP_BEARER_TOKEN or OAuth (see Authentication Modes below)

Health Check Endpoints: When using SSE or streamable HTTP transports, health check endpoints are available:

Simple Health Check (/healthz)

# Quick health check
curl http://localhost:3000/healthz
# Response: 200 OK with body "ok"

Detailed Health Check (/health)

# Detailed health information
curl http://localhost:3000/health

Response includes:

{
  "status": "healthy",
  "version": "1.0.0",
  "uptime": 3600.5,
  "memory": {
    "rss": 52428800,
    "heapTotal": 20971520,
    "heapUsed": 15728640,
    "external": 1048576,
    "arrayBuffers": 262144
  },
  "connections": {
    "mcp": 5,
    "http": 3
  },
  "timestamp": "2025-11-02T12:00:00.000Z",
  "transport": {
    "mode": "both",
    "http": true,
    "sse": true
  }
}

These endpoints can be used by:

  • Load balancers (use /healthz for simple checks)

  • Monitoring systems (use /health for detailed metrics)

  • Orchestration platforms (Docker, Kubernetes)

  • CI/CD health checks

  • APM and observability tools

Note: Health check endpoints are not available when using the STDIO transport.

HTTPS/TLS Configuration (Secure Transport)

To enable HTTPS for the SSE or streamable HTTP transport, provide both certificate and key files:

# Using environment variables (recommended)
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem
export MCP_TRANSPORT=sse
npm start

# Using CLI flags
npm start -- --transport sse \
  --server.tls-cert-file /path/to/cert.pem \
  --server.tls-key-file /path/to/key.pem

# Access via HTTPS
curl https://localhost:3000/healthz

Behavior:

  • TLS Not Configured (default): Server uses HTTP protocol

  • TLS Configured (both cert and key files provided): Server uses HTTPS protocol only

  • Partial TLS Config (only cert OR only key): Server uses HTTP protocol (both required)

Generate Self-Signed Certificate for Testing:

# Generate self-signed certificate (for development/testing only)
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=localhost"

# Start server with TLS
npm start -- --transport sse \
  --server.tls-cert-file ./cert.pem \
  --server.tls-key-file ./key.pem

Production Recommendations:

  • Use certificates from a trusted Certificate Authority (Let's Encrypt, commercial CAs)

  • Consider using a reverse proxy (nginx, Caddy) for TLS termination

  • Rotate certificates before expiry

  • Use strong TLS protocols (TLS 1.2+)

Read-Only Mode (Default - Safe Monitoring)

By default, the server runs in read-only mode for safety:

# Read-only mode (default)
npm start

# Explicitly enable write operations
npm start -- # with MCP_READ_ONLY=false in .env

# Or via environment
export MCP_READ_ONLY=false
npm start

Custom Tool Selection

# Enable specific tools only
npm start -- --enabled-tools "list_resources,get_resource,list_alerts,get_alert"

# Disable search functionality
npm start -- --disable-search

JSON Logging for Production

npm start -- --log-format json --log-level warn

Complete Example

npm start -- \
  --lm-company mycompany \
  --lm-bearer-token "your-token" \
  --transport sse \
  --address 0.0.0.0:8080 \
  --read-only \
  --log-format json \
  --log-level info

Transport Mode Shortcuts

The unified server supports convenient npm scripts for each transport:

# STDIO transport (default, for Claude Desktop)
npm start
npm run start:stdio

# SSE transport (for web/remote clients)
npm run start:sse

# HTTP transport (for advanced integrations)
npm run start:http

Available Tools

The server provides 122 tools for comprehensive LogicMonitor operations. Tools are categorized by functionality and marked as read-only (safe) or write (modifies data).

Resource/Device Management

Read-Only:

  • list_resources - List all monitored resources/devices with filtering (supports simple search via query parameter or advanced filtering via filter parameter)

  • get_resource - Get detailed device information by ID

  • generate_resource_link - Generate direct link to device in LM UI

Write Operations:

  • create_resource - Add new device(s) to monitoring (supports batch)

  • update_resource - Modify existing device(s) (supports batch)

  • delete_resource - Remove device(s) from monitoring (supports batch)

Resource/Device Groups

Read-Only:

  • list_resource_groups - List all device groups/folders

  • get_resource_group - Get device group details by ID

Write Operations:

  • create_resource_group - Create new device group

  • update_resource_group - Modify device group

  • delete_resource_group - Delete device group

Alert Management

Read-Only:

  • list_alerts - List active alerts with filtering (supports simple search via query parameter or advanced filtering via filter parameter)

  • get_alert - Get detailed alert information

  • generate_alert_link - Generate direct link to alert in LM UI

  • list_alert_rules - List alert routing rules

  • get_alert_rule - Get alert rule details

Write Operations:

  • acknowledge_alert - Acknowledge alert (stops escalation)

  • add_alert_note - Add note to alert for documentation

  • create_alert_rule - Create new alert routing rule

  • update_alert_rule - Modify alert rule

  • delete_alert_rule - Delete alert rule

DataSources & Monitoring

Read-Only:

  • list_datasources - List all available datasources

  • get_datasource - Get datasource details

  • list_resource_datasources - List datasources applied to device

  • get_resource_datasource - Get device datasource details

  • list_resource_instances - List datasource instances (disks, interfaces, etc.)

  • get_resource_instance_data - Get time-series metrics data

  • list_eventsources - List all eventsources

  • get_eventsource - Get eventsource details

  • list_configsources - List configuration sources

  • get_configsource - Get configsource details

Write Operations:

  • update_resource_datasource - Modify device datasource configuration

Dashboards & Reporting

Read-Only:

  • list_dashboards - List all dashboards

  • get_dashboard - Get dashboard details

  • generate_dashboard_link - Generate direct link to dashboard in LM UI

  • list_dashboard_groups - List dashboard groups

  • get_dashboard_group - Get dashboard group details

  • list_reports - List all reports

  • get_report - Get report details

  • list_report_groups - List report groups

  • get_report_group - Get report group details

Write Operations:

  • create_dashboard - Create new dashboard

  • update_dashboard - Modify dashboard

  • delete_dashboard - Delete dashboard

  • create_report_group - Create report group

  • update_report_group - Modify report group

  • delete_report_group - Delete report group

Collectors & Infrastructure

Read-Only:

  • list_collectors - List monitoring collectors (agents)

  • get_collector - Get collector details

  • list_collector_groups - List collector groups

  • get_collector_group - Get collector group details

  • list_collector_versions - List available collector versions

  • list_netscans - List network discovery scans

  • get_netscan - Get NetScan details

  • get_topology - Get network topology information

Write Operations:

  • create_netscan - Create NetScan

  • update_netscan - Modify NetScan

  • delete_netscan - Delete netscan

Website Monitoring

Read-Only:

  • list_websites - List website monitors

  • get_website - Get website monitor details

  • generate_website_link - Generate direct link to website in LM UI

  • list_website_groups - List website groups

  • get_website_group - Get website group details

  • list_website_checkpoints - List available monitoring checkpoints

Write Operations:

  • create_website - Create new website monitor

  • update_website - Modify website monitor

  • delete_website - Delete website monitor

Services (Business Logic)

Read-Only:

  • list_services - List business services

  • get_service - Get service details

  • list_service_groups - List service groups

  • get_service_group - Get service group details

Write Operations:

  • create_service - Create new business service

  • update_service - Modify service

  • delete_service - Delete service

  • create_service_group - Create service group

  • update_service_group - Modify service group

  • delete_service_group - Delete service group

Alert Configuration

Read-Only:

  • list_escalation_chains - List alert escalation chains

  • get_escalation_chain - Get escalation chain details

  • list_recipients - List alert recipients

  • get_recipient - Get recipient details

  • list_recipient_groups - List recipient groups

  • get_recipient_group - Get recipient group details

Write Operations:

  • create_escalation_chain - Create escalation chain

  • update_escalation_chain - Modify escalation chain

  • delete_escalation_chain - Delete escalation chain

  • create_recipient - Create alert recipient

  • update_recipient - Modify recipient

  • delete_recipient - Delete recipient

  • create_recipient_group - Create recipient group

  • update_recipient_group - Modify recipient group

  • delete_recipient_group - Delete recipient group

Integrations

Read-Only:

  • list_integrations - List third-party integrations

  • get_integration - Get integration details

Write Operations:

  • create_integration - Create new integration

  • update_integration - Modify integration

  • delete_integration - Delete integration

Administration & Security

Read-Only:

  • list_users - List users/admins

  • get_user - Get user details

  • list_roles - List user roles

  • get_role - Get role details

  • list_access_groups - List access groups

  • get_access_group - Get access group details

  • list_api_tokens - List API tokens for user

Write Operations:

  • create_access_group - Create access group

  • update_access_group - Modify access group

  • delete_access_group - Delete access group

Properties & Configuration

Read-Only:

  • list_resource_properties - List custom properties for device

  • list_resource_group_properties - List properties for device group

Write Operations:

  • update_resource_property - Update device property value

  • update_resource_group_property - Update device group property value

Scheduled Down Time (SDT)

Read-Only:

  • list_sdts - List scheduled down times

  • get_sdt - Get SDT details

Write Operations:

  • create_resource_sdt - Create scheduled down time

  • delete_sdt - Delete scheduled down time

Operational Notes

Read-Only:

  • list_opsnotes - List operational notes

  • get_opsnote - Get opsnote details

Write Operations:

  • create_opsnote - Create operational note

  • update_opsnote - Modify opsnote

  • delete_opsnote - Delete opsnote

Audit & Compliance

Read-Only:

  • list_audit_logs - List audit trail logs (supports simple search via query parameter or advanced filtering via filter parameter)

  • get_audit_log - Get audit log entry details

Summary

  • 70 read-only tools - Safe for production monitoring

  • 52 write tools - Require caution (disabled by default with --read-only)

  • 122 total tools

Security Considerations

Authentication by Transport Mode

Transport

Authentication

Security Level

Use Case

STDIO

Not required (local process)

âś… Secure

Claude Desktop, local CLI

SSE/HTTP (no auth)

None (default: OAUTH_PROVIDER=none)

⚠️ Development only

Local testing

SSE/HTTP (bearer)

Static token via MCP_BEARER_TOKEN

âś… Secure (with HTTPS)

API clients, internal services

SSE/HTTP (OAuth)

OAuth/OIDC provider

âś… Secure (with HTTPS)

Web applications, enterprise SSO

For production monitoring, enable read-only mode to prevent accidental modifications:

npm start -- --read-only
# or
export MCP_READ_ONLY=true
npm start

This disables all 52 write operations, leaving only 73 safe read-only tools.

Authentication Setup

Development (No Authentication)

# Default configuration - no authentication required
export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-lm-token
export MCP_TRANSPORT=sse
export OAUTH_PROVIDER=none  # or omit - this is the default
npm start

⚠️ Warning: Unauthenticated access allows anyone to connect. Use only in trusted environments.

Production - Bearer Token (Simple)

# Generate a strong token
export MCP_BEARER_TOKEN=$(openssl rand -base64 32)
export OAUTH_PROVIDER=none

# Enable TLS
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem

# Start server
npm start -- --transport sse

Clients must include the token:

curl -H "Authorization: Bearer YOUR_TOKEN" https://localhost:3000/health

Production - OAuth (Enterprise)

# Configure OAuth provider
export OAUTH_PROVIDER=github  # github, google, azure, okta, auth0, custom
export OAUTH_CLIENT_ID=your-client-id
export OAUTH_CLIENT_SECRET=your-client-secret
export OAUTH_SESSION_SECRET=$(openssl rand -hex 32)
export OAUTH_CALLBACK_URL=https://your-domain.com/auth/callback

# Enable TLS
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem

# Start server
npm start -- --transport sse

Users authenticate via browser at /auth/login.

Production - Combined (Flexible)

# Both OAuth and bearer token enabled
export OAUTH_PROVIDER=github
export OAUTH_CLIENT_ID=your-client-id
export OAUTH_CLIENT_SECRET=your-client-secret
export MCP_BEARER_TOKEN=$(openssl rand -base64 32)

# Users: OAuth login via browser
# APIs: Bearer token in Authorization header

API Token Security

LogicMonitor API Token (LM_BEARER_TOKEN):

  • Never commit to version control

  • Use environment variables or .env files (.env is in .gitignore)

  • Rotate regularly (monthly recommended)

  • Use minimal required permissions in LogicMonitor portal

MCP Server Token (MCP_BEARER_TOKEN):

  • Generate strong tokens (32+ bytes): openssl rand -base64 32

  • Store securely (environment variables, secrets management)

  • Never expose in logs or error messages

  • Rotate regularly

  • Use different tokens for different environments

Network Security

Required for Production SSE/HTTP:

  • âś… HTTPS/TLS: Always use encrypted connections (MCP_TLS_CERT_FILE, MCP_TLS_KEY_FILE)

  • âś… Authentication: Enable bearer token or OAuth (never run unauthenticated in production)

  • âś… Firewall: Restrict access by IP/network

  • âś… Rate Limiting: Built-in automatic rate limiting

  • ⚡ Monitoring: Use /health endpoint for health checks

Optional (Defense in Depth):

  • Use reverse proxy (nginx, Caddy) for additional security layers

  • Implement WAF (Web Application Firewall)

  • Use VPN or bastion hosts for sensitive environments

  • Enable audit logging (--log-format json --log-level info)

Security Checklist for Production

  • Read-only mode enabled (MCP_READ_ONLY=true)

  • HTTPS/TLS configured (MCP_TLS_CERT_FILE, MCP_TLS_KEY_FILE)

  • Authentication enabled (MCP_BEARER_TOKEN or OAuth configured)

  • CSRF protection enabled (automatic with OAuth)

  • LogicMonitor API token rotated recently

  • .env file not in version control

  • Firewall rules restrict access to authorized IPs

  • Health check endpoint monitored (/health)

  • Logs reviewed regularly

  • Minimal LogicMonitor API permissions granted

Troubleshooting

"LogicMonitor credentials are required"

Ensure you've set LM_COMPANY and LM_BEARER_TOKEN:

export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-token

Or use CLI flags:

npm start -- --lm-company mycompany --lm-bearer-token "your-token"

Rate Limiting

The server automatically handles rate limits with exponential backoff. If you encounter persistent rate limiting:

  1. Reduce concurrent requests

  2. Enable --debug to see rate limit details

  3. Contact LogicMonitor support to increase your rate limits

Connection Issues

# Test with debug logging
npm start -- --debug --log-level debug

# Verify credentials
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://YOUR_COMPANY.logicmonitor.com/santaba/rest/device/devices?size=1

Tool Not Found

Enable specific tools:

npm start -- --enabled-tools "list_resources,get_resource"

Or check if read-only mode is excluding write operations:

# Show all tools (including write operations)
export MCP_READ_ONLY=false
npm start

Authentication Issues

"401 Unauthorized" when connecting to SSE/HTTP:

  • Check that MCP_BEARER_TOKEN is set and matches the token in your request

  • For OAuth, ensure you've logged in at /auth/login

  • Verify token hasn't expired (OAuth tokens expire, static tokens don't)

"No authentication configured" warning:

  • This is expected when OAUTH_PROVIDER=none and MCP_BEARER_TOKEN is not set

  • For development, this is fine - server allows unauthenticated access

  • For production, configure authentication (see Security Considerations above)

OAuth login not working:

  • Verify OAUTH_PROVIDER, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET are set correctly

  • Check callback URL matches OAuth provider configuration

  • Review server logs for detailed error messages (--debug --log-level debug)

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Run npm run lint and npm run build

  5. Submit a pull request

Available Tools

70 tools
get_access_groupA
Read-only

Get detailed information about a specific access group in LogicMonitor (LM) monitoring by its ID.

Returns: Complete access group details: name, description, tenant ID, list of associated resources (which resources/devices/groups are in this access group), list of users assigned to this access group.

When to use:

  • Review which resources are in this access group

  • Check which users have access to this group

  • Audit access control before modifications

  • Verify tenant isolation configuration

Key information returned:

  • Resources: Which resource/device groups and resources users in this access group can see

  • Users: Which users are assigned to this access group

  • Tenant ID: Multi-tenant identifier (MSP environments)

Impact analysis: Before modifying access group:

  • Removing resource: Users lose visibility to those resource/device

  • Removing user: User loses visibility to all resources in group

  • Deleting group: All users lose their access scope

Workflow: Use "list_access_groups" to find accessGroupId, then use this tool to review complete configuration before modifications.

Related tools: "list_access_groups" (find groups), "update_access_group" (modify), "list_users" (see user access).

ParametersJSON Schema
NameRequiredDescriptionDefault
accessGroupIdYesThe ID of the access group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds value by detailing the return data (resources, users, tenant ID) and providing impact analysis context. It does not contradict annotations; however, it could mention pagination or rate limits.

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

Conciseness4/5

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

The description is well-structured with clear sections and front-loaded purpose. While slightly verbose, every section adds value. It is efficient given the complexity.

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

Completeness5/5

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

Given no output schema, the description thoroughly explains return values and provides workflow and impact context. It is complete for a read-only detail tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully describes parameters. The description provides minimal extra insight (e.g., using list_access_groups to find accessGroupId). Baseline 3 is appropriate as the schema does most of the work.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a specific access group... by its ID,' which is a specific verb+resource. It distinguishes itself from siblings like list_access_groups and update_access_group by explicitly mentioning them as related tools and providing usage guidance.

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

Usage Guidelines5/5

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

The 'When to use' section lists specific scenarios, and the 'Workflow' section advises using list_access_groups first. It also includes 'Impact analysis' for pre-modification context, making it clear when to use this read-only tool versus alternatives.

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

get_alertA
Read-only

Get detailed information about a specific alert in LogicMonitor (LM) monitoring by its ID.

Returns: Complete alert details: alert message, severity, threshold crossed, current value, alert history, escalation chain triggered, acknowledgement details, resource details, datasource/datapoint info, alert rule applied.

When to use:

  • Investigate specific alert after getting ID from "list_alerts"

  • Check threshold and current values

  • Review alert history and escalation

  • Get context before acknowledging

Workflow: First use "list_alerts" to find the alertId, then use this tool for complete investigation details.

Related tools: "acknowledge_alert" (acknowledge alert), "add_alert_note" (document findings), "generate_alert_link" (share with team).

ParametersJSON Schema
NameRequiredDescriptionDefault
alertIdYesThe ID of the alert to retrieve
needMessageNoWhether to include alert message details
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and description adds value by detailing the specific alert attributes returned (severity, threshold, escalation, etc.), though it could explicitly state no side effects (e.g., no state changes).

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

Conciseness5/5

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

Well-structured with sections: purpose, returns, when to use, workflow, related tools. Front-loaded with key details, no redundant sentences, and appropriately sized for the tool's complexity.

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

Completeness5/5

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

Despite no output schema, the description thoroughly explains return content (alert message, severity, threshold, history, etc.) and places the tool in a clear workflow with related tools, making it complete for an agent to use correctly.

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

Parameters4/5

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

Input schema covers all 3 parameters with descriptions (100% coverage). Description adds a concrete example for the 'fields' parameter ('id,displayName,hostStatus'), aiding understanding beyond the schema's generic description.

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

Purpose5/5

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

Description clearly states the tool gets detailed info about a specific alert by ID, using a specific verb and resource. It distinguishes from siblings like list_alerts (for finding IDs) and acknowledge_alert (for actions after investigation).

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

Usage Guidelines5/5

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

Explicitly states when to use: after list_alerts to investigate, check thresholds, review history, and before acknowledging. Provides workflow order and links to related tools (acknowledge_alert, add_alert_note, generate_alert_link).

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

get_alert_ruleA
Read-only

Get detailed information about a specific alert rule by ID in LogicMonitor (LM) monitoring.

Returns: Complete alert rule details: name, priority, enabled status, detailed matching conditions (device groups, datasources, datapoints, instance filters, severity levels), escalation chain assignment, suppression windows, notification settings.

When to use:

  • Review exact matching logic before modifying rule

  • Troubleshoot why alert matched (or didn't match) this rule

  • Document alert routing policies

  • Verify suppression settings

  • Check which escalation chain receives matching alerts

Matching conditions explained:

  • deviceGroups: Which resource/device folders this rule applies to (e.g., /Production/, /Database Servers/)

  • datasources: Which datasources trigger this rule (e.g., CPU, Memory, AWS_EC2)

  • datapoints: Specific metrics (e.g., CPUBusyPercent, MemoryUsedPercent)

  • instances: Filter by instance name (e.g., C: drive only, eth0 interface only)

  • severity: Alert levels (critical, error, warn)

  • escalatingChainId: Where matching alerts are routed

Troubleshooting use cases:

  • "Why did this CPU alert go to wrong team?" → Check resource/device group + datasource filters

  • "Why didn't I get paged?" → Verify alert matches conditions AND check escalation chain

  • "Too many alerts" → Review if conditions too broad, add instance filters

Workflow: Use "list_alert_rules" to find ruleId, then use this tool to review complete matching logic and routing.

Related tools: "list_alert_rules" (find rules), "update_alert_rule" (modify), "get_escalation_chain" (check notification chain).

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesThe ID of the alert rule to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by explaining what details are returned (matching conditions, escalation chain, etc.) and providing context for troubleshooting. No contradictions, but could mention permission needs.

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

Conciseness4/5

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

Well-structured with headings and bullet points. The purpose is stated upfront. It is slightly longer but each section earns its place. Could be tightened, but effective for an AI agent.

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

Completeness5/5

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

Given no output schema, the description thoroughly explains what the tool returns and provides rich context about matching conditions and troubleshooting. This fully compensates for the missing output schema and equips the agent to use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description does not add significant new information about the parameters themselves; it focuses on returned fields. Baseline 3 is appropriate.

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

Purpose5/5

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

The tool clearly states it retrieves detailed information about a specific alert rule by ID, distinguishing itself from sibling tools like list_alert_rules (find rules) and update_alert_rule (modify). The verb 'get' and specific resource 'alert_rule' are precise.

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

Usage Guidelines5/5

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

Provides explicit 'When to use' bullet points, troubleshooting use cases, and workflow. It directs users to use list_alert_rules to find the ruleId, and mentions related tools for modification and escalation chain. This fully addresses when to use and alternatives.

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

get_audit_logA
Read-only

Get detailed information about a specific audit log entry in LogicMonitor (LM) monitoring by its ID.

Returns: Complete audit log details: username, IP address, exact timestamp, full description of action, session ID, affected resources, before/after values (for updates).

When to use:

  • Get complete details after finding log ID via "list_audit_logs"

  • Review exact changes made (old vs new values)

  • Investigate specific incident with full context

Workflow: First use "list_audit_logs" with filters to find relevant entries, then use this tool with the log ID for complete details.

Related tools: "list_audit_logs" (search logs), "search_audit_logs" (text search).

ParametersJSON Schema
NameRequiredDescriptionDefault
auditLogIdYesThe ID of the audit log entry to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so the tool is read-only. The description adds detailed behavioral context: returns username, IP, timestamp, description, session ID, affected resources, before/after values. No contradictions.

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

Conciseness5/5

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

The description is well-structured with bullet points for returns, when to use, workflow, and related tools. It is concise, front-loaded with the primary purpose, and every sentence adds value. No wasted words.

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

Completeness5/5

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

Even without an output schema, the description explains return values in detail. It covers workflow and relationships with sibling tools. For a simple tool with a clear schema, this is complete and sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it implicitly references the auditLogId but doesn't elaborate on the fields parameter. No new parameter context provided.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed info on a specific audit log entry by ID. It specifies the verb 'Get', the resource 'audit log entry', and differentiates from siblings like 'list_audit_logs' and 'search_audit_logs' by explicitly describing its role in the workflow.

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

Usage Guidelines5/5

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

Provides explicit when-to-use scenarios (after finding log ID, review exact changes, investigate incidents). Includes a workflow step: first use list_audit_logs, then this tool. Also lists related tools, offering clear guidance on tool selection.

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

get_collectorA
Read-only

Get detailed information about a specific collector by its ID in LogicMonitor (LM) monitoring.

Returns: Complete collector details: description (name), hostname, platform, status, build version, number of resource/device monitored, free disk space, CPU/memory usage, last heartbeat, configuration.

When to use:

  • Check collector health before assigning resources/devices

  • Verify collector capacity

  • Troubleshoot connectivity issues

  • Check version for updates

  • Monitor collector performance

Health indicators to check:

  • status: "alive" (healthy) vs "dead" (offline/problem)

  • numberOfHosts: How many resource/device this collector monitors (capacity planning)

  • freeDiskSpace: Disk space available (needs GB for data buffering)

  • build: Version number (compare with "list_collector_versions" for updates)

  • lastHeartbeatTime: Recent = healthy, old = potential issue

Workflow: Use "list_collectors" to find collectorId, then use this tool for detailed health check.

Related tools: "list_collectors" (find collector), "list_collector_versions" (check updates), "list_resources" (see assigned resources/devices).

ParametersJSON Schema
NameRequiredDescriptionDefault
collectorIdYesThe ID of the collector to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds value by listing specific health indicators (status, numberOfHosts, freeDiskSpace) and their meanings, going beyond the bare annotation.

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

Conciseness4/5

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

Well-structured with sections (Returns, When to use, Health Indicators, Workflow, Related tools). Though lengthy, the structure aids comprehension and all content adds value.

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

Completeness5/5

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

No output schema; description fully details return fields (description, hostname, platform, etc.) and health interpretations. With only 2 parameters, this is thorough and complete for agent invocation.

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

Parameters4/5

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

Input schema coverage is 100%, so baseline is 3. Description adds examples for 'fields' parameter and explains the curated set vs '*', providing extra clarity.

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

Purpose5/5

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

Description states 'Get detailed information about a specific collector by its ID' with clear verb+resource. It distinguishes from siblings like 'get_collector_group' and 'list_collectors' by focusing on a single collector's details.

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

Usage Guidelines5/5

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

Explicitly lists when to use (check health, capacity, troubleshoot) and provides workflow ('list_collectors' to find ID, then this tool). Also mentions related tools, giving clear context for decision-making.

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

get_collector_groupA
Read-only

Get detailed information about a specific collector group by ID in LogicMonitor (LM) monitoring.

Returns: Complete collector group details: name, full path, parentId, description, number of collectors (direct and total), number of subgroups.

When to use:

  • Get group path for documentation

  • Check collector membership counts

  • Verify group hierarchy

  • Review group structure before deploying collectors

Workflow: Use "list_collector_groups" to find groupId, then use this tool for complete details.

Related tools: "list_collector_groups" (find groups), "list_collectors" (collectors in group), "create_collector_group" (create new).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the collector group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, indicating safe read operation. Description adds valuable context about what is returned (name, path, parentId, description, collector counts, subgroups) beyond annotations. No contradictions.

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

Conciseness5/5

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

Description is well-structured with clear sections (Returns, When to use, Workflow, Related tools). Front-loaded with main purpose, concise without unnecessary words.

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

Completeness5/5

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 one required parameter, the description covers purpose, return contents, usage context, and workflow comprehensively. No output schema, but description details return fields adequately.

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

Parameters3/5

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

Input schema provides full descriptions for both parameters (groupId and fields), achieving 100% coverage. Description does not add additional meaning beyond what is in the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'Get detailed information about a specific collector group by ID' – specific verb and resource. Distinguishes from sibling tools like list_collector_groups (find groups) and get_collector (individual collector).

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

Usage Guidelines5/5

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

Explicitly lists use cases (documentation path, membership counts, verify hierarchy) and provides workflow: use list_collector_groups to find groupId first. Also mentions related tools, giving clear guidance on when to use this tool.

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

get_configsourceA
Read-only

Get detailed information about a specific ConfigSource by its ID in LogicMonitor (LM) monitoring.

Returns: Complete ConfigSource details: name, displayName, description, appliesTo logic (which resources/devices), collection method (CLI/SNMP/API), collection script, alert settings.

When to use:

  • Understand what config is being collected

  • Review appliesTo logic (why it does/doesn't apply to device)

  • Check collection method

  • Troubleshoot config collection issues

Key information:

  • appliesTo: Logic determining which resource/device get config tracking

  • collectMethod: How config is retrieved (CLI commands, SNMP, API)

  • configAlerts: Settings for when to alert on changes

  • lineageId: Built-in (LogicMonitor) vs custom ConfigSource

Workflow: Use "list_configsources" to find configSourceId, then use this tool to understand how it works.

Related tools: "list_configsources" (find ConfigSource), "list_device_configs" (see configs for device).

ParametersJSON Schema
NameRequiredDescriptionDefault
configSourceIdYesThe ID of the configuration source to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds behavioral context beyond annotations by detailing the return fields (name, displayName, appliesTo, collectMethod, etc.) and explaining key information like lineageId (built-in vs custom). No contradictions.

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

Conciseness4/5

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

The description is well-structured with clear headings (Returns, When to use, Key information, Workflow, Related tools). It is relatively lengthy but each section adds value. Slightly more concise phrasing could improve it, but it is organized and front-loaded with purpose.

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

Completeness5/5

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

Given the tool has 2 parameters (1 required), no output schema, and readOnlyHint annotation, the description covers all necessary context. It explains return fields, usage scenarios, workflow, and related tools. The agent has sufficient information 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.

Parameters3/5

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 both parameters adequately. The description does not add new parameter semantics beyond the schema, but it provides usage context (e.g., how to obtain configSourceId via list_configsources). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get detailed information about a specific ConfigSource by its ID in LogicMonitor (LM) monitoring.' It identifies the verb (get), resource (ConfigSource), and scope (by ID). It also distinguishes itself from sibling tools like list_configsources by mentioning its specific purpose.

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

Usage Guidelines5/5

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

The description provides explicit usage scenarios under 'When to use:', including understanding collected config, reviewing appliesTo logic, checking collection method, and troubleshooting. It also offers a workflow: use list_configsources to find the ID, then this tool. Related tools are listed for alternatives.

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

get_dashboardA
Read-only

Get detailed information about a specific dashboard by its ID in LogicMonitor (LM) monitoring.

Returns: Complete dashboard details: name, description, groupId, owner, widgets configuration, widget count, sharing settings, template variables, last modified.

When to use:

  • Review dashboard configuration

  • See widget definitions before cloning

  • Check dashboard owner

  • Verify template variables

  • Get dashboard metadata

What you get:

  • widgetsConfig: JSON configuration of all widgets (chart types, metrics, thresholds)

  • widgetTokens: Template variables (e.g., defaultDeviceGroup for dynamic filtering)

  • groupId/groupName: Which folder dashboard is in

  • sharable: Whether dashboard is public/private

Use cases:

  • Clone dashboard to create similar one

  • Export dashboard configuration for backup

  • Audit which resources/devices/metrics are being visualized

  • Document dashboard purpose and widgets

Workflow: Use "list_dashboards" to find dashboardId, then get details, then "generate_dashboard_link" to get shareable URL.

Related tools: "list_dashboards" (find dashboard), "generate_dashboard_link" (get URL), "update_dashboard" (modify), "list_dashboard_groups" (browse folders).

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboardIdYesThe ID of the dashboard to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true. Description adds detailed behavioral context: lists returned fields (widgetsConfig, widgetTokens, groupId, sharable) and use cases, confirming no side effects.

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

Conciseness4/5

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

Well-structured with sections and bullet points. Slightly long but each section adds value. Could be more concise but remains clear and front-loaded.

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

Completeness5/5

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

Given no output schema, description fully explains return content, use cases, and workflow. No gaps for an agent to understand and invoke this tool correctly.

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

Parameters4/5

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

Schema covers 100% of parameters. Description adds value by explaining how to find dashboardId via list_dashboards and that fields parameter can limit response, but does not elaborate beyond schema.

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

Purpose5/5

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

Clearly states verb 'Get', resource 'dashboard details', and domain 'LogicMonitor monitoring'. Distinguishes from siblings by specifying it's for dashboard retrieval and referencing related tools like list_dashboards.

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

Usage Guidelines5/5

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

Provides explicit 'When to use' bullet points and a workflow (list_dashboards -> get_dashboard -> generate_dashboard_link). Also lists related tools for alternative actions.

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

get_dashboard_groupA
Read-only

Get detailed information about a specific dashboard group by its ID in LogicMonitor (LM) monitoring.

Returns: Complete dashboard group details: name, full path, parentId, description, number of dashboards (direct and total), number of subgroups, owner, permissions.

When to use:

  • Get group path for documentation

  • Check group membership counts

  • Verify group hierarchy

  • Review permissions before creating dashboards in it

Workflow: Use "list_dashboard_groups" to find groupId, then use this tool for complete details.

Related tools: "list_dashboard_groups" (find groups), "list_dashboards" (dashboards in group), "create_dashboard_group" (create new).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the dashboard group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true. Description adds valuable behavioral context: lists specific return fields (name, full path, parentId, etc.) and explains the tool returns 'complete dashboard group details'. This goes beyond annotations by detailing output structure, which is important since no output schema exists.

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

Conciseness5/5

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

Description is well-structured with clear headings (Returns, When to use, Workflow, Related tools). Every sentence serves a purpose; no fluff. Efficient and easy to scan.

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

Completeness5/5

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 no output schema, the description is comprehensive. It details the return fields, provides usage scenarios, a workflow, and related tools. It fully prepares the 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.

Parameters3/5

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

Schema coverage is 100%, so both parameters ('groupId' and 'fields') are already described in the input schema. The description does not add new meaning beyond the schema; it only mentions groupId contextually in the workflow. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'dashboard group', with specific context ('by its ID in LogicMonitor monitoring'). It distinguishes from siblings like 'list_dashboard_groups' and 'get_dashboard' by focusing on a single group and providing detailed return info.

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

Usage Guidelines5/5

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

Explicit 'When to use' section lists concrete scenarios (e.g., 'Get group path for documentation', 'Review permissions before creating dashboards'). Includes workflow ('Use list_dashboard_groups to find groupId') and related tools with clear purposes. No explicit when-not, but context is sufficient.

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

get_datasourceA
Read-only

Get detailed information about a specific datasource by its ID in LogicMonitor (LM) monitoring.

Returns: Complete datasource details: name, displayName, description, appliesTo logic, collection method, datapoints (metrics), thresholds, alert rules, polling interval.

When to use:

  • Understand what datasource monitors

  • Review alert thresholds

  • See collection method (SNMP/WMI/API/script)

  • Check datapoint definitions

  • Troubleshoot why datasource applies/doesn't apply to device

Key information returned:

  • appliesTo: Logic determining which resource/device get this datasource (e.g., "system.hostname =~"*prod*"")

  • dataSourceType: Collection method (SNMP, WMI, JDBC, API, script)

  • dataPoints: List of metrics collected (e.g., CPUBusyPercent, MemoryUsedPercent)

  • alertExpr: Threshold formulas (when to alert)

  • collectInterval: How often data is collected (seconds)

Understanding appliesTo logic: Shows why datasource does/doesn't monitor certain resources/devices. Common patterns:

  • isWindows() - Only Windows resource/device

  • system.devicetype == "server" - Only servers

  • hasCategory("AWS/EC2") - Only AWS EC2 instances

Workflow: Use "list_datasources" to find dataSourceId, then use this tool to understand how it works.

Related tools: "list_datasources" (find datasource), "list_resource_datasources" (see which resource/device use it).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataSourceIdYesThe ID of the datasource to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true; description adds detailed return field descriptions and explains appliesTo logic, providing behavioral context beyond annotations 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.

Conciseness4/5

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

Well-structured with clear sections (summary, returns, when to use, key info, workflow). Slightly lengthy but every section adds value. Front-loaded with purpose.

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

Completeness4/5

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

No output schema, but description thoroughly explains returned fields (appliesTo, dataSourceType, datapoints, etc.) and gives examples. Adequate for understanding tool output and usage context.

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

Parameters3/5

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

Input schema covers both parameters with full descriptions (100% coverage). Description does not add additional parameter semantics; it mentions key returned fields but not parameter usage details.

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

Purpose5/5

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

Clearly states 'Get detailed information about a specific datasource by its ID' with distinct resource and action. Among sibling get_ tools, this purpose is unique and unambiguous.

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

Usage Guidelines5/5

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

Includes a dedicated 'When to use' section listing specific scenarios (review thresholds, understand appliesTo, etc.). Also provides workflow suggestion to use list_datasources first and relates to sibling tools.

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

get_escalation_chainA
Read-only

Get detailed information about a specific escalation chain by its ID in LogicMonitor (LM) monitoring.

Returns: Complete escalation chain details: name, description, all stages with: recipients at each stage, notification methods (email/SMS/webhook), time delays between stages, rate limiting, business hours restrictions.

When to use:

  • Review detailed notification workflow

  • Verify who gets notified at each stage

  • Check timing between escalations

  • Audit notification methods

  • Troubleshoot why notifications not received

Stage details returned: For each stage:

  • Stage number (1, 2, 3...)

  • Delay before stage triggers (minutes)

  • Recipients/groups notified

  • Notification methods (email, SMS, integration)

  • Schedule (24/7 vs business hours only)

Example escalation chain details: Stage 1 (0 min): Email "oncall@company.com", SMS "+1-555-1234" Stage 2 (15 min): PagerDuty integration, Email "team-lead@company.com" Stage 3 (30 min): Slack webhook, Email "engineering-manager@company.com"

Workflow: Use "list_escalation_chains" to find chainId, then use this tool to review complete notification workflow.

Related tools: "list_escalation_chains" (find chains), "update_escalation_chain" (modify), "list_recipients" (see recipients).

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesThe ID of the escalation chain to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior4/5

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

Description adds context beyond readOnlyHint annotation, detailing return structure and stages. No contradictions. It does not discuss potential limitations like rate limits or auth, but for a read-only lookup, 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.

Conciseness4/5

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

Well-structured with sections, but slightly verbose with repeated stage details. Front-loaded key info. Still concise enough for utility.

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

Completeness4/5

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

No output schema, but description compensates with detailed return info, example, and workflow. Covers essential requirements for an agent to use the tool correctly.

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

Parameters5/5

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

Schema coverage is 100%, and description adds meaning: explains fields parameter usage with examples and default behavior. This goes beyond the schema's brief descriptions.

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

Purpose5/5

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

The description clearly states it gets detailed information about a specific escalation chain by ID. It distinguishes from sibling tools like list_escalation_chains and update_escalation_chain, making its unique purpose evident.

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

Usage Guidelines5/5

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

Explicitly lists when to use: review notification workflow, verify recipients, check timing, audit methods, troubleshoot. Also provides a workflow: use list_escalation_chains first, then this tool. Related tools are named.

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

get_eventsourceA
Read-only

Get detailed information about a specific EventSource by its ID in LogicMonitor (LM) monitoring.

Returns: Complete EventSource details: name, displayName, description, appliesTo logic, collection method, filter rules, severity mapping, alert settings.

When to use:

  • Understand what events are collected

  • Review filter rules (which events trigger alerts)

  • Check severity mapping

  • Troubleshoot event collection

  • See appliesTo logic

Key information:

  • appliesTo: Which resources/devicesget event monitoring

  • filters: Rules for parsing/matching events

  • severityMapping: Map event levels (INFO/WARN/ERROR) to LM alert levels

  • schedule: When event collection runs

Workflow: Use "list_eventsources" to find eventSourceId, then use this tool for complete configuration.

Related tools: "list_eventsources" (find EventSource), "list_device_eventsources" (events for device).

ParametersJSON Schema
NameRequiredDescriptionDefault
eventSourceIdYesThe ID of the eventsource to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so agent knows it's safe. Description adds detail about what is returned (complete details, specific fields) and key information about response structure. No contradictions.

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

Conciseness5/5

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

Description is well-structured with bold headers, bullet points, and front-loaded summary. Every section (Returns, When to use, Key information, Workflow, Related tools) provides unique value without redundancy.

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

Completeness5/5

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

Despite no output schema, description fully explains return values (name, displayName, appliesTo, filters, etc.). Provides workflow context and related tools. All necessary information for a get tool is present.

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

Parameters3/5

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

Schema coverage is 100% with both parameters already described. Description does not add new parameter-level detail beyond the schema; it repeats fields but not in a way that increases understanding of parameter usage.

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

Purpose5/5

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

Description clearly states 'Get detailed information about a specific EventSource by its ID', using a specific verb and resource. It distinguishes from siblings by listing related tools (list_eventsources, list_device_eventsources) and focusing on single item retrieval.

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

Usage Guidelines5/5

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

Explicitly provides 'When to use' section with bullet points covering scenarios like understanding events, reviewing filters, troubleshooting. Workflow guidance is given: use list_eventsources first. 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_integrationA
Read-only

Get detailed information about a specific integration by ID in LogicMonitor (LM) monitoring.

Returns: Complete integration details: name, type, configuration (API keys, webhooks, URLs), authentication status, last successful notification, error logs, which escalation chains use it.

When to use:

  • Troubleshoot integration not working

  • Review configuration before updates

  • Check API keys/authentication

  • See last successful notification time

  • Audit integration settings

Configuration details by type:

  • Slack: Webhook URL, channel names, mention settings

  • PagerDuty: Integration key, service mappings

  • ServiceNow: Instance URL, credentials, table mapping

  • Jira: Project keys, issue type, custom field mapping

  • Webhook: Target URL, authentication headers, payload format

Troubleshooting:

  • Authentication failed: Check API keys/credentials

  • Not receiving notifications: Verify escalation chain configuration

  • Error logs: Review failed notification attempts

Workflow: Use "list_integrations" to find integrationId, then use this tool for detailed configuration and troubleshooting.

Related tools: "list_integrations" (find integrations), "test_integration" (send test), "update_integration" (modify).

ParametersJSON Schema
NameRequiredDescriptionDefault
integrationIdYesThe ID of the integration to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the read-only nature is already conveyed. The description adds significant behavioral context: it details return fields, configuration specifics per integration type, and troubleshooting tips. No contradictions. A slight deduction for not mentioning potential side effects or limits, but overall very informative.

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

Conciseness4/5

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

The description is well-structured with sections, bullet points, and clear headings. It is front-loaded with the core purpose. However, it is somewhat verbose with repeated troubleshooting advice that could be condensed. Overall, it earns its length by being informative.

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

Completeness5/5

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

Given no output schema, the description fully compensates by explaining return fields, configuration details, troubleshooting, and workflow. It covers all necessary aspects for an agent to use the tool correctly, including links to sibling tools. Highly complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining what data is returned for various integration types (Slack, PagerDuty, etc.) which helps the agent understand how to use the integrationId parameter effectively. However, it does not explicitly elaborate on the 'fields' parameter beyond what is in the schema.

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

Purpose5/5

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

The description clearly states it gets detailed information about a specific integration by ID in LogicMonitor. It distinguishes from siblings like list_integrations by explicitly stating a workflow: use list_integrations to find the ID, then this tool. The purpose is specific and well-defined.

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

Usage Guidelines5/5

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

The description provides a dedicated 'When to use' section listing concrete scenarios (troubleshoot, review config, check API keys, etc.). It also explains the workflow and mentions related tools (list_integrations, test_integration, update_integration) so the agent knows when to use this tool vs alternatives.

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

get_netscanA
Read-only

Get detailed information about a specific netscan by ID in LogicMonitor (LM) monitoring.

Returns: Complete netscan details: name, description, scan method, schedule, target networks/IPs, credentials, filters (include/exclude rules), resource/device properties to apply, collector assignment, duplicate detection settings, last execution results.

When to use:

  • Review netscan configuration before running

  • Troubleshoot why certain resource/device not discovered

  • Check credentials and filters

  • Verify resource/device properties applied to discovered resources/devices

  • Understand duplicate detection logic

Configuration details returned:

  • Targets: IP ranges, subnets, or cloud filters (e.g., "192.168.1.0/24", "All EC2 with tag:Environment=prod")

  • Schedule: How often scan runs (hourly, daily, weekly, on-demand)

  • Credentials: Which properties used for authentication (ssh.user, snmp.community)

  • Filters: Include/exclude rules (e.g., "Exclude IPs ending in .1", "Only Linux servers")

  • Device properties: Auto-applied to discovered resource/device (e.g., location, environment tags)

  • Duplicate handling: How to handle resource/device found in multiple scans

Troubleshooting use cases:

  • "Why resource/device not discovered?" → Check if IP in target range and not excluded by filters

  • "Wrong credentials?" → Verify credential properties configured in netscan

  • "resources/Devices missing properties?" → Check default properties applied by netscan

Workflow: Use "list_netscans" to find netscanId, then use this tool to review complete configuration.

Related tools: "list_netscans" (find netscan), "update_netscan" (modify), "run_netscan" (execute now).

ParametersJSON Schema
NameRequiredDescriptionDefault
netscanIdYesThe ID of the netscan to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true. The description adds detailed behavioral context by listing what configuration details are returned and troubleshooting use cases, without contradicting annotations.

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

Conciseness4/5

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

The description is well-structured with headers and bullet points, and the core purpose is front-loaded. While somewhat verbose, every section adds value for an AI agent.

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

Completeness5/5

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

Given no output schema, the description thoroughly lists the returned configuration details and troubleshooting use cases. It covers all expected behavior for a read-only retrieval tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra context by explaining the netscanId as obtained from list_netscans and implicitly describes the fields parameter through the troubleshooting examples. This raises the score above baseline.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a specific netscan by ID' with a specific verb and resource. It also distinguishes from siblings by mentioning list_netscans, update_netscan, and run_netscan as related tools.

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

Usage Guidelines5/5

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

The 'When to use' section lists specific scenarios like reviewing configuration before running and troubleshooting discovery. It also provides a workflow linking to list_netscans and distinguishes from update/run tools.

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

get_opsnoteA
Read-only

Get detailed information about a specific operational note by ID in LogicMonitor (LM) monitoring.

Returns: Complete OpsNote details: note text, timestamp, creator, tags, scope (resources/devices/groups affected), related SDTs, linked resources.

When to use:

  • Get full note details after finding ID via list

  • Review what was documented at specific time

  • Check scope of operational event

  • Verify linked resources

Workflow: Use "list_opsnotes" to find note ID, then use this tool for complete details.

Related tools: "list_opsnotes" (find notes), "create_opsnote" (add new), "update_opsnote" (modify).

ParametersJSON Schema
NameRequiredDescriptionDefault
opsNoteIdYesThe ID of the OpsNote to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint: true, and the description adds contextual transparency by listing the exact fields returned (note text, timestamp, creator, tags, scope, etc.), with no contradictions.

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

Conciseness5/5

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

The description is well-structured with bold headers and bullet points, concise yet comprehensive, every sentence adds value without redundancy.

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

Completeness5/5

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

Despite lacking an explicit output schema, the description fully enumerates return fields. It integrates seamlessly with sibling tools and no critical information is missing for a retrieval operation.

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

Parameters3/5

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

Schema coverage is 100%, so the description doesn't provide additional meaning beyond what the schema already offers for both parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool fetches detailed info for a specific opsnote by ID, with explicit verb-resource pairing. It distinguishes from siblings by mentioning list_opsnotes for finding notes and create/update opsnote for modifications.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section with clear use cases and a workflow recommendation to use list_opsnotes first. It also lists related tools for context.

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

get_recipientA
Read-only

Get detailed information about a specific recipient by ID in LogicMonitor (LM) monitoring.

Returns: Complete recipient details: type, name, contact information (email/phone/URL), notification method, timezone, schedule restrictions, rate limiting settings.

When to use:

  • Verify contact information before escalation

  • Check notification schedule (business hours vs 24/7)

  • Review rate limiting settings

  • Audit recipient configuration

Details returned:

  • Contact info: Exact email/phone/webhook URL

  • Schedule: When notifications are sent (always vs business hours)

  • Rate limit: Max notifications per time period (prevent notification fatigue)

  • Method: Delivery mechanism (SMTP, Twilio, webhook)

Workflow: Use "list_recipients" to find recipientId, then use this tool for complete configuration.

Related tools: "list_recipients" (find recipient), "update_recipient" (modify), "list_escalation_chains" (usage).

ParametersJSON Schema
NameRequiredDescriptionDefault
recipientIdYesThe ID of the recipient to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating safe read operation. The description adds useful details about returned fields (type, name, contact info, etc.) but does not disclose any additional behavioral traits like permissions or error conditions. 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.

Conciseness4/5

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

The description is well-structured with sections and bullet points, making it easy to scan. Minor redundancy exists between 'Returns:' and 'Details returned:' sections, but overall it is efficient.

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

Completeness5/5

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

No output schema is provided, so the description compensates by thoroughly listing return fields (contact info, schedule, rate limit, method). It includes workflow guidance and related tools, making it fully complete for the tool's complexity.

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

Parameters3/5

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

Input schema coverage is 100% since both parameters (recipientId, fields) are described in the schema. The description does not add parameter-level details but explains the return structure, which is acceptable for a baseline score.

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

Purpose5/5

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

The description explicitly states 'Get detailed information about a specific recipient by ID' with a specific verb and resource. It clearly distinguishes from siblings like 'list_recipients' which finds recipients by ID first.

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

Usage Guidelines4/5

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

The description provides clear use cases: verify contact info, check schedule, review rate limits, audit configuration. It also suggests a workflow using 'list_recipients' first. Though it lacks explicit 'when not to use' statements, the context is sufficient.

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

get_recipient_groupA
Read-only

Get detailed information about a specific recipient group by ID in LogicMonitor (LM) monitoring.

Returns: Complete recipient group details: name, description, list of all members (recipients), member contact info, escalation chains using this group.

When to use:

  • Review group membership before modifications

  • Verify who gets notified through this group

  • Check which escalation chains use this group

  • Audit team notification lists

Key information returned:

  • Members: All recipients in group (names, emails, phones)

  • Usage: Which escalation chains reference this group

  • Description: Purpose/team name

Before modifying group: Review escalation chain usage to understand impact of changes. Removing member from group affects all chains using that group.

Workflow: Use "list_recipient_groups" to find groupId, then use this tool to review membership before updating.

Related tools: "list_recipient_groups" (find groups), "update_recipient_group" (modify), "list_escalation_chains" (see where used).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the recipient group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, and the description adds valuable context: what information is returned (members' contact info, escalation chain usage), and the caution that removing a member affects all chains using the group. No contradictions.

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

Conciseness4/5

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

The description is well-structured with sections (Returns, When to use, Key information, Warning, Workflow, Related tools). It is comprehensive but slightly lengthy; however, every section serves a purpose and adds clarity.

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

Completeness5/5

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

Despite no output schema, the description exhaustively explains return values (members, usage, description) and provides workflow guidance and warnings. For a tool with two parameters, this is thorough and leaves no ambiguity for an AI agent.

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

Parameters4/5

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

Both parameters are described in the schema (100% coverage), and the description adds meaning: groupId is obtained from list, and fields can be a comma-separated list or '*' with an explanation of omitting it. It reinforces the purpose but doesn't introduce new meanings beyond schema.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed info about a specific recipient group by ID, and lists what details are returned (members, usage, description). It distinguishes from siblings like 'list_recipient_groups' and 'update_recipient_group' by specifying its role in the workflow.

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

Usage Guidelines5/5

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

Explicitly lists four usage scenarios (review membership before modifications, verify notifications, check escalation chain usage, audit notification lists) and suggests a workflow: use 'list_recipient_groups' to find groupId, then this tool before updating. Also mentions related tools and warns about impact of changes.

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

get_reportA
Read-only

Get detailed information about a specific report by its ID in LogicMonitor (LM) monitoring.

Returns: Complete report details: name, type, description, schedule (daily/weekly/monthly), recipients, format, data sources (which resources/devices/groups), date range, customization settings, last run timestamp, delivery status.

When to use:

  • Review report configuration before modification

  • Check recipients and schedule

  • Verify data sources (which resource/device included)

  • Troubleshoot why report not received

  • Clone report settings for similar report

Configuration details:

  • Schedule: When report runs (e.g., "Every Monday at 8am")

  • Recipients: Who receives report via email

  • Format: PDF (management), HTML (web), CSV (data analysis)

  • Scope: Which resources/devices/groups are included

  • Date range: Last 7 days, last month, custom period

Workflow: Use "list_reports" to find reportId, then use this tool for complete configuration.

Related tools: "list_reports" (find reports), "update_report" (modify), "generate_report" (run now).

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe ID of the report to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=true, so the description's behavioral disclosure is not burdened. The description adds considerable context about returned fields (name, type, schedule, recipients, format, data sources, etc.) and configuration details, going beyond annotations. 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.

Conciseness4/5

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

The description is well-structured with clear sections (Returns, When to use, Configuration details, Workflow, Related tools) and is front-loaded with purpose. Some redundancy exists between 'Returns' and 'Configuration details', but overall it's efficient and scannable.

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

Completeness5/5

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

Given no output schema, the description provides detailed return values and configuration details, compensating fully. The workflow and usage scenarios make the tool context-complete for a simple read operation with two parameters.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters documented in schema). The description does not add new parameter-level details beyond the schema, but the workflow context indirectly references the reportId. Baseline 3 is appropriate as schema does the heavy lifting.

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

Purpose5/5

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

The description explicitly states 'Get detailed information about a specific report by its ID' and uses a specific verb (get) and resource (report). It distinguishes from siblings by mentioning related tools and workflow, making the purpose clear and unique.

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

Usage Guidelines5/5

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

The 'When to use' section lists concrete scenarios (review configuration, check recipients, verify data sources, troubleshoot, clone settings) and the workflow explicitly suggests using 'list_reports' first. The 'Related tools' section provides alternatives, offering clear guidance on when to use this tool versus others.

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

get_report_groupA
Read-only

Get detailed information about a specific report group by ID in LogicMonitor (LM) monitoring.

Returns: Complete report group details: name, full path, parentId, description, number of reports (direct and total), number of subgroups.

When to use:

  • Get group path for documentation

  • Check report membership counts

  • Verify group hierarchy

  • Review group structure before creating reports

Workflow: Use "list_report_groups" to find groupId, then use this tool for complete details.

Related tools: "list_report_groups" (find groups), "list_reports" (reports in group), "create_report_group" (create new).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the report group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the description's mention of returning details is consistent. It adds value by specifying the exact return data (name, path, parentId, counts). No side effects or limitations are omitted, but no extra behavioral context beyond the annotations is needed.

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

Conciseness5/5

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

Description is well-structured: a brief summary sentence, bullet list of return values, use-case section, workflow hint, and related tools. Every sentence is informative and earns its place.

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

Completeness5/5

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

For a simple read tool with full schema coverage and no output schema, the description sufficiently covers return details, use cases, and workflow. No gaps remain for an AI agent to invoke correctly.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters. The description does not add meaning beyond the schema; it only reaffirms the groupId parameter. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb ('Get'), resource ('detailed information about a specific report group by ID'), and includes the context of LM monitoring. It lists return fields, distinguishing itself from sibling tools like list_report_groups.

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

Usage Guidelines5/5

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

A dedicated 'When to use' section lists four specific use cases, and a workflow note suggests using list_report_groups first. Related tools are explicitly named, providing clear guidance on when to use this tool versus alternatives.

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

get_resourceA
Read-only

Get detailed information about a specific resource/device in LogicMonitor (LM) monitoring by its ID.

Returns: Complete resource/device details including: displayName, IP/hostname, hostStatus, alertStatus, collector assignment, resource/device type, custom properties, applied datasources, group memberships, last data time, creation date.

When to use:

  • Get full details after finding resource/device ID via "list_resources"

  • Check resource/device configuration

  • Verify collector assignment

  • Review custom properties before updating

Workflow: Use "list_resources" or "search_resources" first to find the deviceId, then use this tool for complete details.

Related tools: "list_resource_datasources" (see what's monitored), "list_resource_properties" (view all properties), "generate_resource_link" (get UI link).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe ID of the resource/device to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true. Description adds behavioral context by listing the types of information returned (displayName, IP, status, etc.) and confirming it's a read operation. No contradictions.

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

Conciseness5/5

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

Well-structured with sections: main purpose, Returns, When to use, Workflow, Related tools. Every sentence is informative and earns its place. No fluff.

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

Completeness5/5

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

The description fully covers the tool's purpose, return content, usage context, and workflow. Given simple input schema (2 params) and no output schema, it is complete.

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

Parameters3/5

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

Schema coverage is 100%; description does not add extra detail beyond the schema's parameter descriptions. Baseline score of 3 applies as the schema already documents parameters sufficiently.

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

Purpose5/5

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

Description clearly states 'Get detailed information about a specific resource/device... by its ID.' Verb and resource are specific, and it distinguishes from sibling tools like list_resources (which lists IDs) and get_resource_datasource (which gets datasource details).

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

Usage Guidelines5/5

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

Provides explicit 'When to use' scenarios, a workflow hint (use list/search first), and related tools. This gives clear guidance on when to use vs alternatives.

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

get_resource_datasourceA
Read-only

Get detailed information about a specific datasource applied to a resource/device in LogicMonitor (LM) monitoring.

Returns: Complete resource/device datasource details: dataSourceName, status, alert status, number of instances, monitoring configuration, stop monitoring flag, custom properties, graphs.

When to use:

  • Check if datasource is collecting data

  • Review alert status for specific datasource

  • Verify custom thresholds

  • Get deviceDataSourceId for instance operations

  • Troubleshoot data collection issues

Key fields:

  • instanceNumber: How many instances (e.g., 4 network interfaces)

  • status: Collection status (normal vs error)

  • alertStatus: Any active alerts from this datasource

  • stopMonitoring: Whether datasource is disabled on this resource/device

Workflow: Use "list_device_datasources" to find deviceDataSourceId, then use this tool for detailed status.

Related tools: "list_device_datasources" (find datasource), "list_device_instances" (get instances), "update_device_datasource" (enable/disable).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe resource/device ID
deviceDataSourceIdYesThe resource/device datasource ID
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true; description adds valuable behavioral context by listing key return fields (instanceNumber, status, alertStatus) and confirming it returns 'complete details'. No contradictions.

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

Conciseness5/5

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

Well-structured with sections: purpose, returns, when to use, key fields, workflow, related tools. Each sentence is valuable; no fluff. Front-loaded with main purpose.

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

Completeness5/5

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

Despite no output schema, the description compensates by listing return fields and explaining use cases. It covers prerequisites (use list to get ID), and provides enough detail for an agent to decide if this tool is appropriate.

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

Parameters5/5

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

Schema has 100% coverage, but description adds context: explains 'fields' parameter with examples, and interprets key fields like 'instanceNumber' and 'status' in plain language. This helps agents understand parameter usage and return value semantics.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed information about a datasource applied to a resource. It uses specific verb 'Get' and resource 'datasource details', and distinguishes from siblings like 'list_resource_datasources' and 'get_datasource' via related tools section.

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

Usage Guidelines5/5

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

Explicit 'When to use:' section lists concrete scenarios (check collection, review alert status, etc.). Also provides a workflow suggestion using 'list_device_datasources' first, and lists related tools for alternative actions.

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

get_resource_groupA
Read-only

Get detailed information about a specific resource/device group by its ID in LogicMonitor (LM) monitoring.

Returns: Complete group details: name, full path, parentId, description, custom properties, number of resource/device (direct and total), number of subgroups, alert status, SDT status.

When to use:

  • Get group path for documentation

  • Review inherited properties

  • Check group membership counts

  • Verify group hierarchy

  • Get group details before creating resource/device in it

Key information:

  • fullPath: Complete hierarchy (e.g., "/Production/Web Servers/US-East")

  • customProperties: Properties inherited by all resource/device in group

  • numOfDirectDevices: resources/Devices directly in this group

  • numOfHosts: Total resource/device including subgroups

  • alertStatus: Rollup alert status for entire group

Custom properties inheritance: Properties set on group are inherited by ALL resource/device in group. Common uses:

  • Credentials: {name: "ssh.user", value: "monitoring"}

  • Environment tags: {name: "env", value: "production"}

  • Owner: {name: "team", value: "platform-engineering"}

Workflow: Use "list_resource_groups" to find groupId, then use this tool for complete details including inherited properties.

Related tools: "list_resource_groups" (find groups), "create_resource_group" (create new), "list_resources" (devices in group).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the resource/device group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already include readOnlyHint=true, but the description adds valuable behavioral context: it explains the returned structure (fullPath, customProperties, etc.) and details about custom properties inheritance. 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.

Conciseness4/5

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

The description is lengthy but well-organized into sections (returns, when to use, key information, etc.). It is front-loaded with the core purpose and each section adds distinct value. Not overly verbose for a complex tool.

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

Completeness5/5

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

Given no output schema, the description thoroughly explains the return fields (fullPath, customProperties, numOfDirectDevices, etc.) and inheritance behavior. It is complete for a get tool with two parameters.

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

Parameters4/5

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

Schema coverage is 100% (both parameters documented). The description does not add new parameter details but explains the significance of returned fields, which helps interpret the output. The value-add justifies a score above baseline 3.

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

Purpose5/5

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

The description clearly states the tool obtains detailed information about a resource/device group by ID, using specific verb and resource. It distinguishes from siblings like list_resource_groups which lists groups, and get_resource which gets a device.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use' scenarios, a workflow referencing list_resource_groups, and related tools. It gives clear context on when to use this tool, such as checking group membership or reviewing inherited properties.

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

get_resource_instance_dataA
Read-only

Get time-series metrics/datapoints data (e.g., CPU/memory/network utilization) for a specific resource/device datasource instance in LogicMonitor (LM) monitoring.

Returns: Time-series data with timestamps and values for requested datapoints. Format: {timestamps: [epoch1, epoch2], values: {datapoint1: [val1, val2], datapoint2: [val1, val2]}}.

When to use:

  • Get CPU utilization for last 24 hours

  • Fetch disk usage trends

  • Retrieve network bandwidth data

  • Export metrics for analysis

  • Build custom dashboards/reports

Required workflow (3 steps):

  • Use "list_resource_datasources" → get deviceDataSourceId for datasource (e.g., WinCPU)

  • Use "list_resource_instances" → get instanceId for specific instance (e.g., CPU Core 0)

  • Use this tool → get actual metric values for that instance

Parameters:

  • deviceId: Device ID from "get_resource" or "list_resources"

  • deviceDataSourceId: From "get_resource_datasource" or "list_resource_datasources"

  • instanceId: From "list_resource_instances"

  • datapoints: Comma-separated metric names (e.g., "CPUBusyPercent,MemoryUsedPercent")

  • start/end: Time range in epoch milliseconds (not seconds!), start time must be before current time

Example: Get last hour CPU data: start=Date.now()-3600000, end=Date.now()

Time range tips: If omitted, returns last 2 hours. Max range: 1 year. Use shorter ranges for better performance.

Related tools: "list_resource_datasources", "list_resource_instances".

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe resource/device ID
deviceDataSourceIdYesThe resource/device datasource ID
instanceIdYesThe instance ID
datapointsNoComma-separated list of metric/datapoint names
startNoStart time (epoch milliseconds), start time must be before current time
endNoEnd time (epoch milliseconds)
formatNoResponse format: "json" or "csv"

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=true; description adds output format, default time range (last 2 hours), max range (1 year), and example. No contradictions.

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

Conciseness4/5

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

Well-structured with clear sections and front-loaded purpose. Slightly verbose but every sentence adds value. Could trim some examples but remains effective.

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

Completeness5/5

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

No output schema, but description details the return format. Covers the prerequisite workflow, time range behavior, and parameter usage. Complete for the tool's complexity.

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

Parameters5/5

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

All 7 parameters are documented in schema. Description adds value by explaining datapoints as comma-separated, start/end in epoch milliseconds with a note to avoid seconds, and a concrete example. Time range tips further clarify behavior.

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

Purpose5/5

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

Clearly states it gets time-series metrics/datapoints for a resource instance. Distinguishes from sibling list/get tools by focusing on metric values, with examples like CPU utilization and disk usage.

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

Usage Guidelines5/5

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

Explicitly provides usage scenarios (e.g., 'Get CPU utilization for last 24 hours') and a required 3-step workflow involving list_resource_datasources and list_resource_instances. Also mentions time range tips and related tools.

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

get_roleA
Read-only

Get detailed information about a specific role by its ID in LogicMonitor (LM) monitoring.

Returns: Complete role details: name, description, custom flag, detailed permission matrix (view/manage/delete/acknowledge for each area: resources/devices, alerts, dashboards, reports, settings, users).

When to use:

  • Review exact permissions before assigning role

  • Compare roles to choose correct one

  • Document security policies

  • Audit what a role can/cannot do

  • Before creating custom role (use as template)

Permission granularity returned:

  • Resources: Can view/add/modify/delete resource/device

  • Alerts: Can view/acknowledge/manage alert rules

  • Dashboards: Can view/create/edit/delete dashboards

  • Reports: Can view/create/schedule reports

  • Settings: Can modify datasources/collectors/integrations

  • Users: Can manage other users/roles

Use cases:

  • Security audit: "Can this role delete production resources/devices?"

  • Least privilege: Choose role with minimal required permissions

  • Documentation: Export role permissions for compliance

  • Role comparison: Compare multiple roles to find right fit

Workflow: Use "list_roles" to find roleId, then use this tool to review detailed permissions before assigning to users.

Related tools: "list_roles" (find roles), "list_users" (see who has this role), "create_role" (create custom role).

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIdYesThe ID of the role to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds detail on the permission matrix returned, but no behavioral surprises. Some extra context on return format 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.

Conciseness4/5

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

Well-structured with headings and bullet points, front-loading the main purpose. Slightly lengthy but each section earns its place with examples and use cases.

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

Completeness5/5

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

Despite no output schema, the description thoroughly explains the return format (permission matrix), covers workflow, and lists use cases. Comprehensive for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully described in schema. The description does not add new information about parameters beyond what the schema provides, meeting the baseline.

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

Purpose5/5

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

The description clearly states the tool retrieves role details by ID. It uses specific verb 'Get' and resource 'role', and distinguishes from siblings by mentioning related tools like list_roles and create_role.

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

Usage Guidelines5/5

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

Explicitly lists when to use (review permissions, audit, compare) and provides workflow: use list_roles to find roleId first. Also names related tools (list_roles, list_users, create_role) for context.

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

get_sdtA
Read-only

Get detailed information about a specific Scheduled Down Time (SDT) by its ID in LogicMonitor (LM) monitoring.

Returns: Complete SDT details: type, device/group affected, start/end times, duration, comment, who created it, status (active/scheduled/expired), recurrence settings.

When to use:

  • Verify SDT was created correctly

  • Check when maintenance window ends

  • See who scheduled downtime

  • Get SDT details before extending/canceling

  • Audit maintenance history

Status meanings:

  • scheduled: Future maintenance window (not started yet)

  • active: Currently in maintenance window (alerts suppressed now)

  • expired: Maintenance window completed (historical record)

Workflow: Use "list_sdts" to find SDT ID, then use this tool for complete details before deciding to extend or delete.

Related tools: "list_sdts" (find SDTs), "create_resource_sdt" (create new), "delete_sdt" (cancel).

ParametersJSON Schema
NameRequiredDescriptionDefault
sdtIdYesThe ID of the Scheduled Down Time (SDT) to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, so the safety profile is clear. The description adds value by detailing the return fields (type, times, creator, status) and status semantics. No contradictions. Slight deduction for not mentioning any potential limitations or error conditions.

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

Conciseness5/5

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

The description is well-structured with clear sections (purpose, returns, when to use, status meanings, workflow, related tools). Each sentence adds value, no redundancy, front-loaded with the main purpose.

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

Completeness5/5

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

Despite lacking an output schema, the description comprehensively lists what is returned (type, device/group, times, duration, comment, creator, status, recurrence). It includes status meanings and workflow context, making the tool fully understandable for agents.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add parameter info. It does not elaborate beyond what the schema provides, maintaining the baseline of 3.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a specific Scheduled Down Time (SDT) by its ID', with a specific verb and resource. It distinguishes from sibling tools like list_sdts (list all) and create_resource_sdt (create new).

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

Usage Guidelines5/5

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

Includes a dedicated 'When to use' section with concrete scenarios (verify creation, check end time, etc.), a workflow (use list_sdts first), and explicit alternative tools. Also explains status meanings to guide interpretation.

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

get_serviceA
Read-only

Get detailed information about a specific service by ID in LogicMonitor (LM) monitoring.

Returns: Complete service details: name, description, health status, dependency tree (all resources comprising service), SLA/SLO configuration, availability statistics, alert rules, service group.

When to use:

  • Review service dependencies (what resources are included)

  • Check current health status and root cause

  • Verify SLA/SLO configuration

  • Troubleshoot service downtime

  • Understand service architecture

Key information returned:

  • Dependency tree: All resources/devices/resources that comprise this service

  • Health calculation: How service status is determined (e.g., "If ANY web server is down, service is degraded")

  • Current status: Operational / Degraded / Down

  • SLA metrics: Uptime percentage, outage history

  • Alert configuration: When to alert on service issues

Troubleshooting workflow: Service shows "Down" → Check dependency tree → Identify which specific resource(s) failed → Address those resources → Service auto-recovers when dependencies healthy

Workflow: Use "list_services" to find serviceId, then use this tool for complete dependency analysis.

Related tools: "list_services" (find service), "update_service" (modify dependencies), "list_resources" (see health of dependent resources).

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe ID of the service to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations include readOnlyHint=true, and the description reinforces this by stating it retrieves information. The description adds valuable behavioral context beyond annotations, such as the detailed breakdown of returned data (dependency tree, health calculation, SLA metrics, alert configuration) and a troubleshooting workflow, which fully informs the agent about what to expect.

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

Conciseness4/5

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

The description is well-structured with clear sections and bullet points, making it easy to scan. However, it is somewhat lengthy and contains some redundancy (e.g., 'dependency tree' mentioned in two places). Still, every sentence adds value, earning a 4.

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

Completeness5/5

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

Given the tool's complexity (detailed service info) and lack of output schema, the description fully covers what is returned (dependency tree, health, SLA, alert config), usage context, and a workflow. No gaps remain for an agent to understand its purpose and invocation.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds extra value by providing examples for the 'fields' parameter (e.g., "id,displayName,hostStatus") and noting the default behavior when omitted, which enhances understanding beyond the schema alone.

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

Purpose5/5

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

The description clearly states the verb ('Get'), resource ('detailed information about a specific service'), and scope ('by ID' in LogicMonitor monitoring). It distinguishes itself from sibling tools like list_services (which lists services) by specifying retrieval of a single service's details.

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

Usage Guidelines5/5

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

Explicit 'When to use' section outlines five specific use cases (review dependencies, check health, verify SLA, troubleshoot, understand architecture). Provides a workflow: use list_services first, then this tool. Lists related tools (list_services, update_service, list_resources) for alternative actions.

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

get_service_groupA
Read-only

Get detailed information about a specific service group by ID in LogicMonitor (LM) monitoring.

Returns: Complete service group details: name, full path, parentId, description, number of services (direct and total), number of subgroups.

When to use:

  • Get group path for documentation

  • Check service membership counts

  • Verify group hierarchy

  • Review group structure before creating services

Workflow: Use "list_service_groups" to find groupId, then use this tool for complete details.

Related tools: "list_service_groups" (find groups), "list_services" (services in group), "create_service_group" (create new).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the service group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it's a read operation. The description adds detail about the return content but does not disclose additional behavioral traits like authentication requirements, rate limits, or side effects. The description is consistent with annotations and does not 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.

Conciseness4/5

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

The description is well-structured with clear sections (Returns, When to use, Workflow, Related tools) using markdown headers and bullet points. It is readable but slightly verbose; some redundancy exists (e.g., the first sentence is repeated in Returns). Overall, it effectively communicates without being excessively long.

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

Completeness4/5

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

Given no output schema, the description compensates by listing the return fields (name, full path, etc.). It also provides usage workflow and related tools, making it complete for a simple get tool with 2 parameters. It could mention handling of the optional fields parameter or limits of the response, but overall it provides sufficient context for an agent.

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

Parameters3/5

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

Schema coverage is 100% with both parameters (groupId, fields) described. The description does not add new semantic meaning beyond what the schema provides for these parameters. However, the listing of returned fields gives context that might indirectly help parameter selection but does not directly enhance parameter semantics.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed information about a specific service group by ID. It specifically uses the verb 'Get' and resource 'service group', and the returns section lists specific fields. It differentiates from sibling tools like list_service_groups (which finds groups) and get_service (for individual services), as shown in the related tools section.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use' bullet points (e.g., get group path, check membership counts) and a workflow that instructs to use list_service_groups first to find the groupId. It also lists related tools with their purposes, giving clear guidance on when to use this tool versus alternatives.

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

get_topologyA
Read-only

Get network topology information in LogicMonitor (LM) monitoring.

Returns: Network topology data with: resource/device relationships, network connections, parent-child hierarchies, Layer 2/Layer 3 connectivity maps.

What is topology: Automatically discovered network relationship map showing how resource/device connect to each other. LogicMonitor uses SNMP, CDP (Cisco Discovery Protocol), LLDP (Link Layer Discovery Protocol), and other methods to build network topology maps.

When to use:

  • Understand network architecture and resource/device relationships

  • Visualize network connectivity

  • Plan network changes

  • Troubleshoot connectivity issues

  • Document network infrastructure

Topology information includes:

  • Physical connections: Which resource/device are physically connected (switch ports, router interfaces)

  • Logical relationships: Parent-child relationships (gateway → firewall → switches → servers)

  • Layer 2 topology: MAC address tables, VLANs, switch port connections

  • Layer 3 topology: IP routing, subnets, default gateways

Use cases:

  • Network visualization: See how your network is structured

  • Impact analysis: "If this switch fails, what resource/device lose connectivity?"

  • Capacity planning: Identify network bottlenecks and heavily-utilized links

  • Documentation: Auto-generated network diagrams

  • Troubleshooting: Trace connection paths between resource/device

How LogicMonitor discovers topology:

  • CDP/LLDP: Cisco and other vendors broadcast neighbor information

  • SNMP: Query resource/device interface tables, ARP tables, routing tables

  • Traceroute: Active probing to discover paths

  • Parent/child relationships: Based on gateway configuration

Related tools: "list_resources" (view resources/devices), "get_resource" (device details including connections).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, but the description adds significant behavioral context: what is returned (relationships, layers), how discovery works (SNMP, CDP, LLDP), and the nature of the data (automatically discovered maps). It does not discuss rate limits or performance, but for a read-only query tool, this is sufficient.

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

Conciseness4/5

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

The description is well-structured with headings and bullet points, making it easy to scan. However, it is verbose with repeated phrases like 'resource/device' and covers extensive explanatory material that could be condensed. Still, front-loading the purpose and returns helps agents quickly grasp the tool.

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

Completeness5/5

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

For a tool with no output schema and moderate complexity, the description is remarkably complete. It explains what topology is, when to use it, what information is included (layers, connections), use cases, and even how discovery works. This enables an agent to understand the tool's domain and invocation context thoroughly.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'fields,' which is adequately described in the schema. The description does not add any additional semantic meaning or examples for this parameter, so it meets the baseline but does not exceed.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get network topology information in LogicMonitor (LM) monitoring.' It specifies the exact resource (network topology) and distinguishes from sibling tools like list_resources and get_resource via the 'Related tools' section, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section listing explicit use cases (e.g., understand network architecture, troubleshoot connectivity). It also names alternatives in 'Related tools,' guiding the agent on when to choose this tool over others. No explicit exclusions, but the guidance is comprehensive.

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

get_userA
Read-only

Get detailed information about a specific user by their ID in LogicMonitor (LM) monitoring.

Returns: Complete user details: username, email, firstName, lastName, roles (permissions), status (active/suspended), last login time, created date, phone, timezone, API token count, two-factor auth status.

When to use:

  • Review user permissions and roles

  • Check last login time (identify inactive users)

  • Verify contact information

  • Audit user access before modification

  • Get user details for API token management

Key information:

  • roles: Array of role names (defines permissions)

  • status: "active" (can login) vs "suspended" (access revoked)

  • lastLoginOn: Epoch timestamp (identify inactive accounts)

  • apiTokens: Number of active API tokens

  • twoFAEnabled: Whether 2FA is configured

Security audit use cases:

  • Find users who haven't logged in for 90+ days

  • Review which users have admin roles

  • Check if former employees still have access

  • Verify API token usage per user

Workflow: Use "list_users" to find userId, then use this tool for complete user profile.

Related tools: "list_users" (find user), "list_roles" (see available roles), "list_api_tokens" (view user's tokens), "update_user" (modify).

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe ID of the user to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Describes return fields in detail (username, email, roles, status, etc.) and explains their significance (e.g., 'status: active vs suspended'). Includes security audit use cases. Annotations already indicate read-only, and description reinforces safety with behavioral context.

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

Conciseness4/5

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

Well-structured with sections and bullet points. Every sentence adds value, though somewhat lengthy. Front-loaded with purpose. Could be slightly more concise, but structure aids readability.

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

Completeness5/5

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

Despite no output schema, description provides thorough coverage of return fields, use cases, and workflow. Complements high schema coverage and readOnlyHint annotation. Complete enough for an agent to understand what the tool does and how to use it.

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

Parameters3/5

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

Input schema covers both parameters with descriptions. Description adds no new parameter-level detail beyond schema. Baseline 3 for high schema coverage (100%). Description compensates slightly by explaining return fields that relate to the 'fields' parameter, but not enough to exceed baseline.

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

Purpose5/5

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

Clearly states 'Get detailed information about a specific user by their ID in LogicMonitor (LM) monitoring.' Differentiates from sibling tools like list_users (find user ID) and update_user (modify). Purpose is specific and unambiguous.

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

Usage Guidelines5/5

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

Explicitly lists when to use: review permissions, check last login, verify contact, audit before modification, API token management. Provides workflow: use list_users to find userId then this tool. Mentions related tools for context.

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

get_websiteA
Read-only

Get detailed information about a specific website monitor by its ID in LogicMonitor (LM) monitoring.

Returns: Complete website monitor details: name, type (webcheck/pingcheck), domain/URL, monitoring configuration, checkpoint locations, response time thresholds, SSL settings, authentication, custom headers, alert status.

When to use:

  • Review monitoring configuration

  • Check checkpoint locations

  • Verify URL and settings

  • Troubleshoot failed checks

  • Audit SSL certificate monitoring

Configuration details returned:

  • steps: Multi-step transaction monitoring (for complex workflows)

  • checkpoints: Which global locations perform checks (e.g., US-East, EU-West, Asia-Pacific)

  • schema: HTTP vs HTTPS

  • testLocation: Internal (from collector) vs External (from cloud)

  • responseTimeThreshold: Alert if slower than X ms

  • sslCertExpirationDays: Alert X days before cert expires

Use cases:

  • Verify website is monitored from correct geographic locations

  • Check if SSL certificate expiration monitoring is enabled

  • Review response time thresholds (too strict? too lenient?)

  • Troubleshoot why website checks are failing

  • Document what endpoints are monitored

Workflow: Use "list_websites" to find websiteId, then use this tool for complete monitoring configuration.

Related tools: "list_websites" (find website), "update_website" (modify), "generate_website_link" (get URL), "list_website_checkpoints" (available locations).

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYesThe ID of the website to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Description reinforces the readOnlyHint from annotations by stating it returns data. It details what configuration is returned (steps, checkpoints, thresholds, SSL) and includes use cases for troubleshooting, adding significant 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.

Conciseness4/5

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

Well-structured with sections and bullet points, but slightly verbose with multiple use case lists. The core purpose is front-loaded, and each section adds value, though some redundancy exists.

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

Completeness5/5

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

Thoroughly explains return values (name, type, checkpoints, thresholds, SSL, etc.) and no output schema is present. The description covers all important aspects for a read tool, including related tools and a workflow.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add significant new parameter-level detail beyond what the schema already provides for 'websiteId' and 'fields'.

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

Purpose5/5

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

The description clearly states the verb ('Get'), resource ('website monitor'), and scope ('by its ID in LogicMonitor'). It distinguishes from sibling tools like 'list_websites' and 'update_website' by specifying unique functionality.

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

Usage Guidelines5/5

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

The description includes explicit 'When to use' and 'Workflow' sections, listing specific scenarios (e.g., review config, troubleshoot) and suggesting using 'list_websites' first. It also lists related tools with descriptions, providing clear guidance on alternatives.

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

get_website_groupA
Read-only

Get detailed information about a specific website group by its ID in LogicMonitor (LM) monitoring.

Returns: Complete website group details: name, full path, parentId, description, number of websites (direct and total), number of subgroups, alert status.

When to use:

  • Get group path for documentation

  • Check website membership counts

  • Verify group hierarchy

  • Review group structure before creating monitors

Workflow: Use "list_website_groups" to find groupId, then use this tool for complete details.

Related tools: "list_website_groups" (find groups), "list_websites" (websites in group), "create_website_group" (create new).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the website group to retrieve
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description is consistent, describing a read operation. The description adds details on what the response contains but could explicitly state no side effects.

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

Conciseness5/5

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

Structured with clear sections (Returns, When to use, Workflow, Related tools). Every sentence is informative and no redundant content.

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

Completeness5/5

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

Covers purpose, usage context, return values, and workflow. For a read-only get tool with good annotations, this is fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to explain parameters deeply. It only mentions 'by its ID' for groupId, which adds little beyond the schema.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a specific website group by its ID' and lists what is returned. It distinguishes from sibling get tools by specifying the resource type (website group).

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

Usage Guidelines5/5

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

Provides a dedicated 'When to use' section with specific use cases and a 'Workflow' section recommending prior use of list_website_groups. Related tools are explicitly named, offering alternatives.

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

list_access_groupsA
Read-only

List all access groups in LogicMonitor (LM) monitoring.

Returns: Array of access groups with: id, name, description, tenant ID, number of associated resources, number of users.

What are access groups: Permission boundaries that control WHICH resources users can see and manage. Used in multi-tenant environments to isolate customer data, or to segment access by team/department. Users assigned to access group can only see resources in that group.

When to use:

  • Manage multi-tenant environments (MSPs)

  • Segment monitoring by department/team

  • Control resource visibility

  • Audit access control configuration

  • Find access group IDs for user assignment

Access groups vs Roles (important distinction):

  • Access Groups: Control WHAT resources you can see (visibility, data isolation)

  • Roles: Control WHAT actions you can perform (view/edit/delete permissions)

  • Users need BOTH: Role (what they can do) + Access Group (what they can see)

Common use cases:

MSP / Multi-tenant:

  • Access Group "Customer A" - User sees only Customer A resource/device

  • Access Group "Customer B" - User sees only Customer B resource/device

  • Prevents customers from seeing each other's data

Departmental isolation:

  • Access Group "Network Team" - See only network resource/device

  • Access Group "Server Team" - See only servers

  • Access Group "Database Team" - See only database servers

Environment separation:

  • Access Group "Production" - Only prod resource/device

  • Access Group "Dev/Test" - Only non-prod resource/device

  • Junior staff limited to dev/test access group

Workflow: Use this tool to find access groups, then assign users to groups via "update_user" to control resource visibility.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_access_group" (details), "create_access_group" (create new), "list_users" (see user assignments), "list_resources" (associate resource/device with groups).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already provide 'readOnlyHint: true', but the description adds valuable behavioral context: it notes that a negative 'total' value indicates incomplete results and explains pagination behavior (use size/offset or autoPaginate). This goes beyond the annotations and helps the agent understand 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.

Conciseness3/5

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

The description is well-structured with sections (returns, what are, when to use, etc.) but is verbose. It could be more concise, as multiple paragraphs elaborate on concepts that could be summarized. The length is acceptable but not optimal for quick scanning.

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

Completeness5/5

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

Given the tool has 5 parameters, no output schema, and no nested objects, the description provides a thorough explanation: it states the purpose, usage guidelines, return fields, conceptual background, behavioral notes, and related tools. The explanation of what access groups are and the examples cover the context needed for correct use.

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

Parameters3/5

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

Schema description coverage is 100% (all 5 parameters are described in the schema). The description does not add per-parameter details beyond the schema. However, it does include an 'Important' note about pagination and negative total, which indirectly relates to the pagination parameters. The baseline is 3, and this minor addition does not elevate the score significantly.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'List all access groups in LogicMonitor (LM) monitoring.' It uses a specific verb ('list') and resource ('access groups'). It distinguishes from sibling tools like 'get_access_group' by noting it returns a list, and it explicitly contrasts with roles. The purpose is unambiguous and well-explained.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section listing specific scenarios (multi-tenant, departmental isolation, environment separation). It also provides a crucial distinction between access groups (what you can see) and roles (what you can do), and gives a workflow: use list to find groups, then assign users via 'update_user'. This explicitly guides the agent on when to use this tool vs alternatives.

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

list_alert_rulesA
Read-only

List all alert rules in LogicMonitor (LM) monitoring.

Returns: Array of alert rules with: id, name, priority, enabled status, matching conditions (device/datasource/severity filters), escalation chain assigned, suppression settings.

What are alert rules: The ROUTING LOGIC that determines "which alerts go to which people." Act as traffic directors: "IF alert matches these conditions, THEN send to this escalation chain." Rules are evaluated in priority order (1st match wins).

When to use:

  • Audit who gets notified for different alert types

  • Understand notification routing logic

  • Find rule IDs for modifications

  • Troubleshoot "why didn't I get alerted?"

  • Document alert notification policies

How alert rules work: Alert triggers → Rules evaluated in priority order → First matching rule wins → Routes alert to that rule's escalation chain → Escalation chain notifies recipients

Common alert rule patterns:

  • Priority 1 (Critical Production): IF resource/device in "Production" group AND severity = critical → Route to "Critical On-Call" escalation chain

  • Priority 2 (Database Team): IF datasource contains "MySQL" OR "PostgreSQL" → Route to "Database Team" escalation chain

  • Priority 3 (Business Hours): IF severity = warning → Route to "Business Hours Email" chain (no pages)

  • Priority 99 (Catch-All): IF any alert not matched above → Route to "Default NOC" escalation chain

Use cases:

  • "Who gets paged for production CPU alerts?" → Find rule matching prod resources/devices+ CPU datasource

  • "Update team notifications" → Modify alert rule to route to different escalation chain

  • "Stop getting low-priority pages" → Check which rule routes those alerts, adjust severity or chain

Critical for notification troubleshooting: If alerts aren't reaching people, check:

  • Does alert match any rule?

  • Is matched rule enabled?

  • Is escalation chain configured correctly?

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_alert_rule" (detailed conditions), "list_escalation_chains" (destination chains), "update_alert_rule" (modify routing).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already set readOnlyHint=true, but the description adds valuable behavioral details: explaining that a negative 'total' indicates incomplete results, that pagination with size/offset or autoPaginate should be used, and describing how rules are evaluated in priority order. This goes well 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.

Conciseness4/5

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

The description is long but well-organized with sections, bullet points, and examples. Every section adds value, including common patterns and troubleshooting. It front-loads the core purpose. A slight reduction in length could improve conciseness, but the structure is excellent.

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

Completeness5/5

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

The description covers the tool's purpose, usage scenarios, behavioral notes, parameter hints, response structure (array of alert rules with fields), and troubleshooting tips. It is comprehensive despite lacking an output schema, and addresses potential pitfalls like negative totals and pagination.

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

Parameters4/5

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

The input schema has 100% coverage with clear descriptions for each parameter. The description adds extra value by explaining the filter syntax with specific examples and the significance of autoPaginate for large result sets. It does not repeat schema content but supplements it effectively.

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

Purpose5/5

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

The description clearly states 'List all alert rules in LogicMonitor (LM) monitoring' and explains what alert rules are, distinguishing from siblings like get_alert_rule and list_escalation_chains. The verb 'list' and resource 'alert rules' are specific, and the additional context about routing logic and priority order makes the purpose unmistakable.

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

Usage Guidelines4/5

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

The 'When to use' section provides explicit scenarios such as auditing notifications, understanding routing, troubleshooting, and documentation. It also lists related tools. However, it does not explicitly state when not to use this tool (e.g., for detailed rule inspection vs. list overview), but the context is clear enough for an agent.

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

list_alertsA
Read-only

List active alerts in LogicMonitor (LM) monitoring.

Returns: Array of alerts with: id (alertId), severity (critical/error/warning), resource name, datasource, datapoint, alert message, start time (startEpoch), acknowledgement status (acked), alert rule.

When to use:

  • Get all critical production alerts

  • Find unacknowledged alerts needing attention

  • Monitor specific service health

  • Check CPU/memory alerts

  • Generate alert reports

Two search modes:

  • Simple search: Use query parameter with free text (e.g., query:"prod-web-01") - searches by resource/device name (monitorObjectName field)

  • Advanced filtering: Use filter parameter with LM filter syntax (e.g., filter:"severity:critical,acked:false") for precise control

Common filter patterns:

  • Critical alerts: filter:"severity:critical"

  • Unacknowledged: filter:"acked:false"

  • Specific device: filter:"monitorObjectName~*prod-web-01*"

  • CPU alerts: filter:"resourceTemplateName~*CPU*"

  • Recent alerts: filter:"startEpoch>1730851200" (epoch seconds)

  • Combined: filter:"severity:critical,acked:false" (AND logic)

Query vs Filter:

  • query: Simple text search by resource/device name only (e.g., query:"production", query:"k8s-cluster")

  • filter: Precise LM filter syntax with any alert field. Use for severity, acked status, etc.

  • If both provided, query is converted to filter and combined with provided filter using AND logic

Important: Alert API does NOT support OR operator (||). Use comma for AND only. For complex queries, make multiple calls.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_alert" (full details), "acknowledge_alert" (acknowledge), "add_alert_note" (add notes), "generate_alert_link" (get URL).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSimple search query. Free text (e.g., "prod-web-01", "k8s-cluster") searches by resource/device name (monitorObjectName). Can also use filter syntax (e.g., "severity:critical") which gets formatted automatically.
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.
needMessageNoWhether to include alert message details

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=true, and the description adds behavioral details such as autoPaginate behavior, negative total meaning, and the conversion of query to filter. 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.

Conciseness4/5

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

The description is well-structured with sections (Returns, When to use, Two search modes, Important notes) and front-loaded with purpose. While slightly verbose, every sentence adds value.

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

Completeness5/5

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

Given no output schema, the description provides a comprehensive overview of return fields, pagination, modes, and limitations. It fully equips the agent to use the tool correctly.

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

Parameters5/5

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

All 7 parameters have schema descriptions (100% coverage), and the description adds extra context: distinction between query and filter, conversion rules, and common filter patterns. This goes beyond the schema.

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

Purpose5/5

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

The description clearly states the tool lists active alerts in LogicMonitor and specifies the return structure. It distinguishes from sibling tools like get_alert, acknowledge_alert, etc., by providing context on related functionalities.

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

Usage Guidelines5/5

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

The 'When to use' section lists concrete scenarios (critical alerts, unacknowledged, etc.) and explains two search modes with guidance on when to use each. It includes important notes about OR operator limitations and negative total handling.

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

list_api_tokensA
Read-only

List API tokens for a specific user in LogicMonitor (LM) monitoring.

Returns: Array of API tokens for specified user with: id, note (description), created date, last used date, status (active/inactive), access ID, roles inherited from user.

What are API tokens: Authentication credentials for LogicMonitor REST API. Alternative to username/password for programmatic access. Each token inherits permissions from its user.

When to use:

  • Audit API access per user

  • Find unused/stale tokens for security cleanup

  • Check last usage time

  • Inventory API integrations

  • Before creating new token (check if existing one available)

Security considerations:

  • Each token has Access ID and Access Key (like username/password for API)

  • Token inherits all permissions from user (if user is admin, token has admin rights)

  • Tokens never expire automatically (must be manually revoked)

  • Last used date helps identify unused tokens that should be removed

Common use cases:

  • Security audit: "Find all API tokens, check last usage, remove stale ones"

  • Integration tracking: "Which integrations are using this user's tokens?"

  • Access review: "What API access does this user have?"

  • Token rotation: "List all tokens before rotating credentials"

Best practices:

  • Create service accounts (dedicated users) for API integrations instead of personal user tokens

  • Add descriptive notes to tokens (e.g., "Terraform automation", "Grafana integration")

  • Regularly audit and remove unused tokens (check lastUsedOn timestamp)

  • Use least-privilege: Create users with minimal required permissions, then create tokens for those users

Security workflow:

  • List all users with "list_users"

  • For each user, use this tool to check their API tokens

  • Review lastUsedOn - if >90 days, consider revoking

  • Check note field to understand token purpose

Workflow: Use this tool with userId from "list_users" to audit that user's API access.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "list_users" (find userId), "create_api_token" (generate new), "delete_api_token" (revoke access).

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe user ID
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

The annotations say readOnlyHint=true, and the description adds important behavioral details: negative 'total' indicates incomplete results, pagination behavior, and security considerations about token permissions, going 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.

Conciseness4/5

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

The description is well-organized with sections, but is quite long and includes some redundant explanation (e.g., what are API tokens) that an AI might not need. Still, it is structured and front-loaded with key info.

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

Completeness5/5

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

Given the tool's complexity (6 params, no output schema), the description is thoroughly complete: it covers return fields, use cases, best practices, workflows, and edge cases like negative total. No output schema needed due to detailed description.

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

Parameters3/5

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

Schema coverage is 100% so baseline is 3; the description adds context (e.g., userId from list_users) and an important note about autoPaginate, but does not significantly enhance parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool lists API tokens for a specific user, and includes a workflow linking to sibling tools like 'create_api_token' and 'delete_api_token', distinguishing it well.

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

Usage Guidelines5/5

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

The description provides a dedicated 'When to use' section with specific scenarios (audit, find stale tokens, inventory), a 'Security workflow', and mentions related tools, giving clear guidance on when and how to use.

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

list_audit_logsA
Read-only

List audit logs in LogicMonitor (LM) monitoring for compliance and security auditing.

Returns: Array of audit log entries with: id, username, IP address, timestamp (happenedOn in epoch SECONDS), description of action performed, sessionId.

When to use:

  • Investigate changes: "Who deleted this resource/device?" → filter:"description~*Delete*,description~*device*"

  • Track user activity: "What did john.doe do today?" → filter:"username:john.doe,happenedOn>1730851200"

  • Monitor API usage: Find actions performed via API tokens

  • Compliance audits: Export log history for specific time periods

  • Security investigation: Track login attempts, IP addresses, suspicious activities

  • Troubleshooting: "Who changed this alert rule?" → filter:"description~*AlertRule*"

Two search modes:

  • Simple search: Use query parameter with free text (e.g., query:"john.doe", query:"device") - searches across username, description, and IP fields

  • Advanced filtering: Use filter parameter with LM filter syntax (e.g., filter:"username:admin,happenedOn>1640995200") for precise control

Common filter patterns:

  • By user: filter:"username:john.doe"

  • By time: filter:"happenedOn>1640995200" (IMPORTANT: epoch SECONDS, not milliseconds!)

  • By action type: filter:"description~*Create*" or filter:"description~*Delete*" or filter:"description~*Update*"

  • By resource: filter:"description~*device*" or filter:"description~*dashboard*"

  • By IP: filter:"ip:192.168.1.100"

  • Combined (AND): filter:"username:admin,happenedOn>1640995200,description~*device*"

Query vs Filter:

  • query: Simple text search across username, description, IP (OR logic). Use for quick lookups: query:"john.doe", query:"device"

  • filter: Precise LM filter syntax with any field. Use for time ranges, exact matches: filter:"happenedOn>1640995200"

  • If both provided, query is converted to filter and combined with provided filter using AND logic

Critical notes:

  • Time uses epoch SECONDS (not milliseconds like other LM APIs)

  • Cannot use OR operator (||) in audit logs, only AND (comma)

  • Use autoPaginate:true for complete history (may take time for large datasets)

Web UI access: https://mycompany.logicmonitor.com/santaba/uiv4/settings/access-logs (Settings → Audit Logs)

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_audit_log" (details of specific entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSimple search query. Free text (e.g., "john.doe", "device", "192.168.1.100") automatically searches across username, description, and IP fields. Can also use filter syntax (e.g., "username:admin") which gets formatted automatically.
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses important behaviors: time in epoch seconds, no OR operator, autoPaginate handling, negative total meaning incomplete results, and query-filter interaction. Annotations only provide readOnlyHint, so description adds significant value 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.

Conciseness4/5

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

Well-structured with bullet points and sections. Some redundancy (e.g., web UI access) but overall efficient given complexity. Could be slightly more concise but not excessively long.

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

Completeness5/5

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

Covers all aspects: return format, search modes, filter patterns, pitfalls, pagination, and integration with other tools. No output schema, but description fully compensates. Complete for an agent to use effectively.

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

Parameters5/5

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

Input schema has 100% coverage, but description adds rich examples and nuanced explanations for each parameter (e.g., query vs. filter usage, filter syntax, autoPaginate implications). Far exceeds schema descriptions.

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

Purpose5/5

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

The description clearly states the tool lists audit logs for compliance and security auditing, with specific verb (list) and resource (audit logs). It distinguishes from sibling 'get_audit_log' which retrieves details of a specific entry.

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

Usage Guidelines5/5

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

Provides extensive guidance on when to use (investigate changes, track user activity, etc.), two search modes (simple vs. advanced), common filter patterns, and explicitly mentions related tool 'get_audit_log'. Includes when to use query vs. filter with examples.

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

list_collector_groupsA
Read-only

List all collector groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of collector groups with: id, name, parentId, full path, description, number of collectors, number of subgroups.

What are collector groups: Organizational folders for collectors (monitoring agents), similar to resource/device groups. Used to categorize collectors by location, function, or customer.

When to use:

  • Browse collector organization

  • Find group IDs for collector operations

  • Understand collector deployment structure

  • Navigate to specific collector folders

Common organization patterns:

  • By location: "US-West Collectors", "EU Collectors", "APAC Collectors"

  • By environment: "Production Collectors", "Dev/Test Collectors"

  • By customer: "Customer A Collectors", "Customer B Collectors" (MSP)

  • By datacenter: "DC1 Collectors", "DC2 Collectors", "AWS Collectors"

  • By function: "Network Collectors", "Server Collectors", "Cloud Collectors"

Use cases:

  • Organize collectors by geographic region

  • Group collectors by customer or tenant

  • Separate production vs non-production collectors

  • Structure multi-datacenter collector deployments

Workflow: Use this tool to browse hierarchy, then "list_collectors" filtered by groupId to see collectors in specific folder.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_collector_group" (details), "list_collectors" (collectors in group), "create_collector_group" (create folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true. The description adds critical behavioral context: negative total indicates incomplete results, pagination behavior, and autoPaginate option. 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.

Conciseness4/5

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

The description is relatively long but well-organized with headers and bullet points. It provides valuable context, though some sections (e.g., common patterns) may be redundant for an agent.

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

Completeness5/5

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

No output schema exists, so the description adequately explains the return format (fields like id, name, parentId) and pagination details. Covers all necessary information for a list tool.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add parameter details beyond what the schema provides. The description includes filter syntax in the schema, but the description text itself does not elaborate on parameters.

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

Purpose5/5

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

The description explicitly states the action (list) and resource (collector groups) and includes details about the returned fields. It distinguishes from siblings like get_collector_group and list_collectors by noting the purpose and related workflow.

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

Usage Guidelines4/5

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

Provides clear use cases (browse organization, find group IDs) and workflow instructions (use with list_collectors). Does not explicitly state when not to use, but the context is sufficient.

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

list_collectorsA
Read-only

List all LogicMonitor (LM) monitoring collectors (monitoring agents).

Returns: Array of collectors with: id, description (collector name), hostname, platform (Windows/Linux), status (alive/dead), build version, number of monitored resources/devices, last heartbeat time.

When to use:

  • Check collector health status before adding resources/devices

  • Find available collectors for new resource/device assignments

  • Monitor collector capacity and load

  • Identify offline/dead collectors

What are collectors: Lightweight agents installed on-premise or in cloud that collect metrics from resources/devices. Each resource/device must be assigned to one collector.

Common filter patterns:

  • Alive collectors: filter:"status:alive"

  • By platform: filter:"platform:Linux" or filter:"platform:Windows"

  • By name: filter:"description~*prod*"

  • Low capacity: filter:"numberOfHosts<100"

Before creating resources/devices: Use this tool to find collectorId for the "preferredCollectorId" parameter in "create_resource".

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_collector" (details), "list_collector_groups" (browse groups), "list_collector_versions" (check updates).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only have readOnlyHint:true, which is consistent. The description adds important behavioral details: a negative 'total' indicates incomplete results and recommends pagination or autoPaginate. It also clarifies the read-only nature but could mention any rate limits or auth requirements.

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

Conciseness4/5

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

The description is well-structured with sections, front-loaded with the main action, and each sentence adds value. It is slightly long but not wasteful; could be trimmed slightly for conciseness.

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

Completeness5/5

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

Given no output schema, the description compensates by listing return fields and explaining collector concept. It covers filter syntax, pagination behavior, and prerequisite usage (finding collectorId). Completeness is excellent for this tool's complexity.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by providing common filter patterns and usage context (e.g., 'Before creating resources/devices'), which helps agents understand parameter use beyond schema descriptions.

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

Purpose5/5

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

The description begins with a clear verb-resource combination: 'List all LogicMonitor (LM) monitoring collectors (monitoring agents).' It distinguishes this tool from siblings like get_collector and list_collector_groups through explicit related tools section and usage guidelines.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section listing specific scenarios (check health, find available collectors, monitor capacity, identify offline) and explicitly recommends using this tool to find collectorId before creating resources, with a note on related tools.

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

list_collector_versionsA
Read-only

List available collector versions in LogicMonitor (LM) monitoring.

Returns: Array of collector versions with: version number, release date, stability level (GA/EA/RC), changelog summary, download size, platform support (Windows/Linux), mandatory/recommended flag.

What are collector versions: Software releases for LogicMonitor collector agents. Collectors are installed on your infrastructure to gather monitoring data. Staying current ensures latest features, bug fixes, and security patches.

When to use:

  • Check for collector updates

  • Review changelog before upgrading

  • Find specific version for rollback

  • Verify platform compatibility

  • Plan maintenance windows for collector upgrades

Version types:

  • GA (Generally Available): Production-ready, stable, recommended

  • EA (Early Adopter): Beta, new features, use in non-production first

  • RC (Release Candidate): Pre-GA testing version

  • Mandatory: Critical security/bug fixes, upgrade required

Collector update workflow: 1. Use this tool to check available versions 2. Review changelog for breaking changes 3. Test new version on non-production collector first 4. Use "get_collector" to check current version on your collectors 5. Update collectors via LogicMonitor UI or API 6. Monitor collector health after upgrade

Version numbering: Format is typically X.Y.Z (e.g., 34.100.0) where:

  • X = Major release (significant changes)

  • Y = Minor release (features, improvements)

  • Z = Patch release (bug fixes)

Best practices:

  • Keep collectors within 2-3 versions of latest GA release

  • Subscribe to release notifications for critical updates

  • Test EA versions in lab before production

  • Upgrade during maintenance windows (may briefly interrupt monitoring)

  • Stagger upgrades (don't upgrade all collectors simultaneously)

Common scenarios:

  • "Check if newer version available" → Compare latest version to your collectors

  • "Plan upgrade" → Review changelog, schedule maintenance

  • "Rollback needed" → Find previous stable version

  • "Platform migration" → Verify version supports new OS

Related tools: "get_collector" (check current version on collector), "list_collectors" (find collectors to upgrade).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0).
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint, but the description provides extensive behavioral context: the return format (array with fields), version types (GA, EA, RC, mandatory), and workflow. There is 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.

Conciseness3/5

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

The description is well-structured with headings and bullet points, but it is verbose with sections on version numbering, best practices, and detailed workflow. While informative, it could be more concise for a tool definition.

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

Completeness5/5

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

With no output schema, the description fully explains return values. It covers version types, use cases, best practices, and links to related tools. The 3 optional parameters are well-documented in the schema, so the description is complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description does not elaborate on parameters beyond what the schema provides. It focuses on output and usage, not parameter details.

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

Purpose5/5

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

The first sentence clearly states the tool lists available collector versions in LogicMonitor. It specifies the verb, resource, and context. The description further distinguishes from siblings by mentioning related tools like 'get_collector' and 'list_collectors' for specific tasks.

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

Usage Guidelines5/5

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

The 'When to use' section lists five explicit scenarios (check updates, review changelog, find rollback, verify platform, plan upgrades). It also provides 'Common scenarios' and mentions related tools, giving clear guidance on when to use this tool versus alternatives.

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

list_configsourcesA
Read-only

List all ConfigSources in LogicMonitor (LM) monitoring.

Returns: Array of ConfigSources with: id, name, displayName, description, appliesTo logic, collection method.

What are ConfigSources: Track configuration file changes for compliance and change management. Similar to datasources, but for configs instead of metrics. Alert when configs change unexpectedly.

When to use:

  • Find ConfigSource for specific resource/device type (e.g., Cisco_IOS_Config)

  • Discover what configs are being tracked

  • Get ConfigSource IDs for API operations

  • Audit configuration monitoring coverage

What configs can be tracked:

  • Network resources/devices: Router configs, switch configs, firewall rules

  • Linux: /etc files, app configs, SSH authorized_keys

  • Windows: Registry keys, security policies

  • Cloud: Security groups, IAM policies

Use cases:

  • Compliance: "Alert when firewall rules change"

  • Change management: "Who modified this router config?"

  • Rollback: Compare current config to previous version

  • Audit: "Show all config changes in last 30 days"

Common ConfigSources:

  • Cisco_IOS_Config: Cisco router/switch configs

  • F5_LTM_Config: F5 load balancer configs

  • Palo_Alto_Config: Palo Alto firewall rules

  • Linux_Config_Files: Monitor /etc files

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_configsource" (details), "list_device_configs" (see configs for device).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior4/5

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

ReadOnlyHint is true, description adds context about pagination behavior (negative total indicates incomplete results) and autoPaginate. No contradictions, but could disclose more about authentication or rate limits.

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

Conciseness4/5

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

Well-structured with sections, front-loaded with main purpose. Slightly verbose but each section adds value, so earns its place.

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

Completeness5/5

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

No output schema, but description explicitly states return format (Array with fields), covers common use cases, examples of ConfigSources, and even alerts about negative total. Very complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value by explaining the autoPaginate behavior and the negative total hint for pagination, which is beyond schema.

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

Purpose5/5

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

Description clearly states 'List all ConfigSources in LogicMonitor (LM) monitoring' and explains what ConfigSources are. Distinguishes from sibling tools like get_configsource and list_device_configs.

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

Usage Guidelines5/5

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

Provides explicit when-to-use scenarios (find ConfigSource for specific resource, discover configs, get IDs, audit coverage) and mentions related tools at the end.

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

list_dashboard_groupsA
Read-only

List all dashboard groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of dashboard groups with: id, name, parentId, full path, description, number of dashboards, number of subgroups, owner.

What are dashboard groups: Organizational folders for dashboards, like directories in a file system. Used to organize dashboards by team, function, or application.

When to use:

  • Browse dashboard organization before creating/moving dashboards

  • Find group IDs for dashboard operations

  • Understand dashboard hierarchy

  • Navigate to specific dashboard folders

Common organization patterns:

  • By team: "Platform Team", "Database Team", "Network Team"

  • By environment: "Production", "Staging", "Development"

  • By application: "Web App", "API Services", "Background Jobs"

  • By cloud provider: "AWS Dashboards", "Azure Dashboards"

Workflow: Use this tool to browse hierarchy, then "list_dashboards" filtered by groupId to see dashboards in specific folder.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_dashboard_group" (details), "list_dashboards" (dashboards in group), "create_dashboard_group" (create folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Adds significant behavioral context beyond the readOnlyHint annotation: explains return fields, the 'negative total' edge case for incomplete results, and pagination behavior. 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.

Conciseness4/5

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

Well-structured with headings and bullet points, making information easily scannable. However, somewhat verbose with background sections like 'What are dashboard groups' that may not be necessary for an AI agent.

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

Completeness5/5

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

Fully covers all aspects: return type, pagination, filtering, field selection, edge cases, and workflow integration with related tools. No output schema exists, so the description compensates well.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal new information about parameters beyond what the schema provides. Examples for filter and fields are present but similar to schema descriptions.

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

Purpose5/5

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

Description clearly states 'List all dashboard groups (folders)' – specific verb and resource. Explicitly distinguishes from sibling tools like get_dashboard_group and list_dashboards in the 'Related tools' section.

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

Usage Guidelines5/5

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

Includes a dedicated 'When to use' section with concrete scenarios (browse organization, find group IDs, understand hierarchy). Provides workflow and explicitly mentions alternatives (get_dashboard_group for details).

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

list_dashboardsA
Read-only

List all dashboards in LogicMonitor (LM) monitoring.

Returns: Array of dashboards with: id, name, description, groupId, groupName, widget count, owner.

When to use:

  • Find AWS/Azure/infrastructure dashboards

  • Discover available pre-built dashboards

  • Get dashboard IDs for generating links

  • List dashboards in specific group

Common filter patterns:

  • By name: filter:"name~*AWS*" (find all AWS dashboards)

  • By group: filter:"groupId:5" or filter:"groupName~*Cloud*"

  • By owner: filter:"owner:john.doe"

Next step: Use "generate_dashboard_link" with the dashboard ID to get the full clickable URL for sharing.

Tip: Dashboards are organized in groups. Use "list_dashboard_groups" to browse the hierarchy.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_dashboard" (details), "generate_dashboard_link" (get URL), "list_dashboard_groups" (browse hierarchy).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate readOnlyHint: true, which the description does not contradict. The description adds important behavioral details: warning about negative 'total' indicating incomplete results, and explanation of autoPaginate behavior. This 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.

Conciseness4/5

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

The description is well-structured with headings, bullet points, and clear sections. It is slightly lengthy but every sentence adds value. Front-loaded with purpose and return specification.

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

Completeness5/5

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

No output schema, but the description specifies the return format: 'Array of dashboards with: id, name, description, groupId, groupName, widget count, owner.' It also covers pagination, filtering, and related tools, making it fully complete for a list tool.

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

Parameters5/5

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

Input schema covers 100% of parameters, and the description enriches them with 'Common filter patterns' (e.g., examples for filter), explanation of autoPaginate behavior, and fields usage. This adds significant meaning beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states 'List all dashboards in LogicMonitor (LM) monitoring.' It specifies the verb (list), resource (dashboards), and scope (all). It distinguishes from siblings like get_dashboard (details) and generate_dashboard_link (get URL) in the 'Related tools' section.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use:' section with specific scenarios (e.g., find AWS/Azure dashboards, discover pre-built, get IDs for links). It also provides common filter patterns, a next step, and references to related tools, making usage very clear.

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

list_datasourcesA
Read-only

List all available datasources in LogicMonitor (LM) monitoring.

Returns: Array of datasources with: id, name, displayName, description, appliesTo (which resource/device it monitors), collection method, datapoints/metrics collected.

What are datasources: Templates that define WHAT to monitor (e.g., CPU, memory, disk), HOW to collect it (SNMP, WMI, API), and WHEN to alert. LogicMonitor has 2000+ pre-built datasources for common technologies.

When to use:

  • Find datasource for specific technology (e.g., "AWS_EC2", "VMware_vCenter")

  • Discover what can be monitored

  • Get datasource IDs for API operations

  • Browse monitoring capabilities

Common filter patterns:

  • By name: filter:"name~*CPU*" or filter:"displayName~*Memory*"

  • Cloud providers: filter:"name~*AWS*" or filter:"name~*Azure*"

  • Database: filter:"name~*MySQL*" or filter:"name~*SQL_Server*"

  • Network: filter:"name~*Cisco*" or filter:"name~*SNMP*"

Examples: AWS_EC2 (monitors EC2 instances), SNMP_Network_Interfaces (network stats), WinCPU (Windows CPU), Linux_SSH (Linux via SSH).

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_datasource" (details), "list_resource_datasources" (see what's applied to specific resource/device).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Discloses important behaviors: negative total indicates incomplete results, pagination details, and autoPaginate option. Consistent with readOnlyHint annotation.

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

Conciseness4/5

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

Well-organized with sections, but slightly verbose for a listing tool. Could trim some redundancy while keeping helpful examples.

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

Completeness5/5

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

No output schema, but description details return fields and pagination behavior. Covers all necessary context for effective use.

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

Parameters4/5

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

Schema already covers all 5 parameters with descriptions. Description adds valuable filter pattern examples and clarifies 'fields' parameter usage, but schema is already strong.

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

Purpose5/5

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

Description clearly states it lists all available datasources in LogicMonitor, explains what datasources are, and distinguishes from related tools like get_datasource and list_resource_datasources.

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

Usage Guidelines5/5

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

Explicit 'When to use' section with specific scenarios, filter pattern examples, and references to sibling tools for alternative functionality.

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

list_escalation_chainsA
Read-only

List all escalation chains in LogicMonitor (LM) monitoring.

Returns: Array of escalation chains with: id, name, description, escalation stages, recipients at each stage, timing/delays, enabled status.

What are escalation chains: Define HOW and WHO gets notified when alerts trigger. Multi-stage notification workflows: Stage 1 (notify team lead immediately) → Stage 2 (if still open after 15 min, notify manager) → Stage 3 (if still open after 30 min, page director).

When to use:

  • Audit notification routing

  • Find escalation chain IDs for alert rule configuration

  • Review who gets notified for critical alerts

  • Verify on-call escalation paths

How escalation chains work: Alert triggers → Alert Rule matches → Routes to Escalation Chain → Stage 1 notifies immediately → Wait X minutes → If still alerting, Stage 2 notifies → Repeat through stages

Common escalation patterns:

  • Critical Production: Stage 1: On-call engineer (0 min) → Stage 2: Team lead (15 min) → Stage 3: Engineering manager (30 min)

  • Standard: Stage 1: Team email (0 min) → Stage 2: PagerDuty (30 min)

  • Business Hours Only: Stage 1: Team Slack (0 min, 8am-6pm only)

Use cases:

  • "Who gets paged for critical database alerts?" → Check escalation chain

  • "Why didn't I get notified?" → Verify you're in the escalation chain

  • "Update on-call rotation" → Modify escalation chain recipients

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_escalation_chain" (detailed stages), "list_alert_rules" (see which rules use chain), "list_recipients" (available notification targets).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, confirming the tool is read-only. The description adds transparency by discussing pagination behavior (negative 'total' indicates incomplete results) and the effect of autoPaginate parameter, providing useful behavioral 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.

Conciseness4/5

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

The description is well-structured with headings and bullet points, making it easy to scan. However, it is verbose with sections like 'Common escalation patterns' and 'Use cases' that, while informative, could be more concise for an AI agent.

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

Completeness5/5

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

Given the tool has no output schema, the description compensates by detailing the return fields (id, name, description, etc.) and explaining escalation chain concepts. It covers pagination, usage scenarios, and examples, making the tool fully understandable without additional documentation.

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

Parameters4/5

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

Schema coverage is 100% with detailed parameter descriptions. The description supplements this by explaining pagination behavior and the meaning of a negative 'total' value, which adds context for the size/offset/autoPaginate parameters, justifying a score above baseline.

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

Purpose5/5

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

The description clearly states 'List all escalation chains in LogicMonitor (LM) monitoring' with a specific verb and resource. It provides detailed context on what escalation chains are, when to use the tool, and distinguishes from sibling tools like get_escalation_chain, list_alert_rules, and list_recipients.

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

Usage Guidelines4/5

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

The description includes an explicit 'When to use' section with bullet points and a 'Related tools' section that lists alternatives, guiding the agent on appropriate use cases. However, it does not explicitly state when the tool should not be used or provide exclusions.

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

list_eventsourcesA
Read-only

List all EventSources in LogicMonitor (LM) monitoring.

Returns: Array of EventSources with: id, name, displayName, description, appliesTo logic, event collection method.

What are EventSources: Collect and process event data (logs, Windows events, syslog, traps). Different from DataSources (metrics) and ConfigSources (configs). Used for log monitoring and event correlation.

When to use:

  • Find EventSource for log monitoring

  • Discover what events are being collected

  • Get EventSource IDs for operations

  • Audit event monitoring coverage

Event types collected:

  • Windows Event Logs: Application, Security, System logs

  • Syslog: Linux/Unix system logs, network resource/device logs

  • SNMP Traps: Network resource/device alerts and notifications

  • Application logs: Custom app logs, web server logs

  • Cloud events: CloudWatch logs, Azure events

Common EventSources:

  • Windows_Application_EventLog: Windows application events

  • Windows_Security_EventLog: Security/audit logs

  • Linux_Syslog: Linux system logs via syslog

  • SNMP_Traps: Network resource/device SNMP traps

  • VMware_Events: vCenter events

Use cases:

  • Monitor Windows failed login attempts

  • Alert on ERROR/CRITICAL in application logs

  • Collect network resource/device syslog for troubleshooting

  • Track security events for compliance

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_eventsource" (details), "list_device_eventsources" (events for device).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only have readOnlyHint=true. Description adds rich behavioral details: warns about negative total indicating incomplete results, explains pagination behavior, lists return fields (id, name, displayName, etc.), and provides examples of EventSources. 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.

Conciseness3/5

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

Description is lengthy but well-structured with clear sections (Returns, What are, When to use, Event types, Common, Use cases, Important, Related tools). Some redundancy; could be more concise without losing information.

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

Completeness5/5

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

Covers all aspects: purpose, usage, common EventSources, event types, pagination warning, filter examples, and related tools. No output schema, but description lists return fields. Complete for a list tool with 5 parameters.

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

Parameters4/5

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

Schema coverage is 100% for all 5 parameters. Description adds value by explaining pagination implications ('use pagination...or set autoPaginate: true') and giving examples of filter expressions. This goes beyond baseline 3.

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

Purpose5/5

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

The description states 'List all EventSources in LogicMonitor (LM) monitoring' with clear verb and resource. It explains what EventSources are and distinguishes them from DataSources and ConfigSources. Differentiates from sibling tools 'get_eventsource' and 'list_device_eventsources'.

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

Usage Guidelines4/5

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

Explicit 'When to use' bullet points (find EventSource, discover events, get IDs, audit coverage). Mentions related tools for details and device-specific listing. Does not explicitly state when not to use, but context is clear.

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

list_integrationsA
Read-only

List all third-party integrations configured in LogicMonitor (LM) monitoring.

Returns: Array of integrations with: id, name, type (Slack/PagerDuty/ServiceNow/Jira/etc), status (active/inactive), configuration summary, authentication status.

What are integrations: Connections to external platforms for alert notifications, ticket creation, chat messages, incident management. Extend LogicMonitor alerting beyond email/SMS.

When to use:

  • Find integration IDs for escalation chains

  • Verify integrations are working

  • Audit external connections

  • Check authentication status

  • Review available integration options

Popular integrations:

Incident Management:

  • PagerDuty: Page on-call engineers for critical alerts

  • Opsgenie: Alternative incident management and on-call scheduling

  • VictorOps (Splunk On-Call): Alert routing and escalation

Ticketing:

  • ServiceNow: Auto-create incidents for alerts

  • Jira: Create tickets for infrastructure issues

  • Zendesk: Customer-facing service desk integration

Collaboration:

  • Slack: Post alerts to channels, interactive notifications

  • Microsoft Teams: Teams channel notifications

  • Mattermost: Self-hosted chat notifications

Workflow & Automation:

  • Webhooks: Custom integrations to any HTTP endpoint

  • API: Programmatic integration for custom workflows

Use cases:

  • "Post critical production alerts to #incidents Slack channel"

  • "Auto-create ServiceNow ticket for every critical alert"

  • "Page PagerDuty when datacenter resource/device go offline"

  • "Update Jira epic when deployment causes alerts"

Integration status:

  • Active: Integration configured and working

  • Inactive: Disabled or authentication failed

  • Test: Verify integration by triggering test notification

Workflow: Use this tool to find integrations, then use in escalation chains or as webhook recipients for alert delivery.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_integration" (configuration details), "test_integration" (verify working), "list_escalation_chains" (see usage).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only provide readOnlyHint: true, but the description adds significant behavioral details: a negative 'total' indicates incomplete results, pagination behavior (size/offset/autoPaginate), and integration status meanings (active/inactive/test). 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.

Conciseness2/5

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

The description is verbose, including a lengthy 'Popular integrations' list and definitions of integrations that could be external documentation. It is front-loaded with purpose, but the extra content makes it longer than necessary for an AI agent.

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

Completeness5/5

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

Given the tool is a read-only list with no required parameters and clear annotations, the description is complete: it explains the return array structure, pagination edge cases, filtering, status meanings, and related tools. No output schema needed.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add meaningful semantics beyond the schema; the autoPaginate note is behavioral, not parameter-specific. Thus, no boost.

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

Purpose5/5

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

The description clearly states the tool lists all third-party integrations in LogicMonitor, specifies what is returned (id, name, type, status, etc.), and distinguishes it from sibling tools like get_integration and test_integration.

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

Usage Guidelines4/5

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

The description includes a 'When to use' section with five specific use cases and a 'Workflow' note, providing clear guidance on when to use this tool. It lacks explicit exclusions or when-not-to-use scenarios, but the context is comprehensive.

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

list_netscansA
Read-only

List all network discovery scans (NetScans) in LogicMonitor (LM) monitoring.

Returns: Array of netscans with: id, name, description, scan method (nmap/script/ICMP/SNMP), schedule, target networks (IP ranges/subnets), collector, last run time, resource/device discovered.

What are netscans: Automated network discovery that finds resource/device on your network and adds them to monitoring. Instead of manually adding resource/device one-by-one, netscan automatically discovers and onboards resource/device based on IP ranges or subnets.

When to use:

  • Audit existing discovery configurations

  • Check which networks are being scanned

  • Review netscan schedules

  • Troubleshoot why resource/device not auto-discovered

  • Find netscan IDs for modifications

How netscans work: Scheduled job → Scan network range (e.g., 192.168.1.0/24) → Find live resource/device → Check if already monitored → If new, add to LogicMonitor → Apply resource/device properties and datasources → Begin monitoring

NetScan methods:

  • nmap: Network mapper scan (comprehensive, detects OS, ports, services)

  • ICMP Ping: Simple ping sweep (fastest, basic reachability)

  • SNMP Walk: Query SNMP-enabled resource/device (network gear, servers with SNMP)

  • Script: Custom discovery logic (cloud APIs, CMDBs, etc.)

  • AWS/Azure/GCP: Cloud auto-discovery via APIs

Common use cases:

  • Data center discovery: Scan 10.0.0.0/16 network, auto-add all servers

  • Cloud auto-discovery: Scan AWS account, add all EC2 instances daily

  • Branch office monitoring: Scan remote office subnets, discover network resource/device

  • Dynamic infrastructure: Auto-discover containers, VMs as they spin up

Example NetScan configurations:

  • "Production Servers" - Scan 192.168.1.0/24 every 6 hours via nmap

  • "AWS EC2 Discovery" - Query AWS API every hour for new instances

  • "Network resources/Devices" - SNMP walk 10.0.0.0/8 daily for routers/switches

Workflow: Use this tool to review netscans, then "get_netscan" for detailed configuration including filters and resource/device properties.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_netscan" (configuration details), "create_netscan" (set up auto-discovery), "run_netscan" (trigger manual scan).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations provide readOnlyHint, and the description adds important behavioral details: explains pagination behavior (negative total indicates incomplete results, use autoPaginate), describes the return structure, and explains what netscans are and how they work. This adds 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.

Conciseness5/5

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

The description is well-structured with sections like Returns, What are netscans, When to use, How netscans work, etc. It is front-loaded with the main purpose and every section adds value without unnecessary verbosity.

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

Completeness5/5

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

Given no output schema, the description provides a comprehensive overview of what is returned (list of netscans with fields), explains the domain, and gives proper usage guidance. It covers all necessary context for an AI agent to use this tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description does not add new information about the parameters themselves, though it provides context on using pagination (size, offset, autoPaginate) in the 'Important' note. This is helpful but largely behavioral, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists network discovery scans (NetScans) in LogicMonitor. It uses a specific verb (list) and resource (netscans), and differentiates from other list_* tools by focusing on netscans.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section with specific use cases like auditing, checking networks, troubleshooting. It also provides a workflow (use this tool first, then get_netscan) and lists related tools (get_netscan, create_netscan, run_netscan) to guide when to use alternatives.

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

list_opsnotesA
Read-only

List all operational notes (OpsNotes) in LogicMonitor (LM) monitoring.

Returns: Array of OpsNotes with: id, note text, timestamp (epoch), who created it, tags, scope (applies to which resources/devices/groups), related SDTs.

What are OpsNotes: Timestamped operational annotations displayed on graphs and dashboards. Document changes, deployments, maintenance, incidents - anything that might affect metrics. Appear as vertical lines on metric graphs at the time they occurred.

When to use:

  • Correlate metric changes with operational events

  • Document deployments/changes

  • Create timeline of incidents and responses

  • Track maintenance activities

  • Generate operational reports

Use cases and examples:

Deployments:

  • "Deployed v2.5.0 to production" (explains CPU spike at deploy time)

  • "Database schema migration" (explains slow queries during migration)

Incidents:

  • "Customer reported slow load times - investigating"

  • "Found memory leak, restarting services"

  • "Incident resolved - bad cache configuration"

Maintenance:

  • "Scaled from 10 to 15 instances"

  • "Updated SSL certificates"

  • "Cleared old logs, freed 500GB disk"

Benefits:

  • Troubleshooting: "Latency increased at 2pm" → Check OpsNotes: "Deploy happened at 2pm"

  • Correlation: Understand cause of metric anomalies

  • Documentation: Automatic operational timeline

  • Communication: Share what happened with team

Common filter patterns:

  • By time: filter:"happenedOn>1730851200" (recent notes)

  • By tags: filter:"tags~deployment"

  • By device: filter:"monitorObjectName~prod-web"

Displayed on: Graphs, dashboards, resource/device pages - visible wherever metrics are shown.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_opsnote" (details), "create_opsnote" (add new), "create_device_sdt" (maintenance windows).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description details return format (Array of OpsNotes with specific fields), behavior with negative total indicating incomplete results, and pagination mechanics via autoPaginate. 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.

Conciseness4/5

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

Description is verbose but well-structured with clear headers (When to use, Use cases, Benefits, filter patterns, etc.). Front-loads purpose but includes extensive examples and benefits that could be condensed. Loses one point for length.

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

Completeness5/5

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

Given the tool's complexity, full schema coverage, and no output schema, the description is complete: explains return structure, common use cases, pagination nuances, and related tools. No gaps identified.

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

Parameters3/5

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

Input schema provides 100% coverage with full parameter descriptions. The description adds no new parameter semantics beyond what the schema already provides (e.g., filter patterns and pagination are already in schema). Baseline 3 applies.

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

Purpose5/5

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

The description clearly states it lists all operational notes (OpsNotes) in LogicMonitor, with specific verb and resource. It distinguishes from siblings by mentioning related tools like get_opsnote, create_opsnote, and create_device_sdt.

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

Usage Guidelines5/5

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

Provides explicit 'When to use' section listing scenarios, covers when not to use (alternative tools), and includes filter patterns and pagination advice. The description clearly guides the AI agent on context and alternatives.

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

list_recipient_groupsA
Read-only

List all recipient groups in LogicMonitor (LM) monitoring.

Returns: Array of recipient groups with: id, name, description, member count, recipients list.

What are recipient groups: Collections of recipients treated as a single notification target. Simplify escalation chains by notifying entire teams at once. Example: "Database Team" group contains 5 team members - notify group = notify all 5.

When to use:

  • Find group IDs for escalation chains

  • Audit team notification lists

  • Review group membership before changes

  • Simplify notification management

Benefits over individual recipients:

  • Easier management: Update team once, applies to all escalation chains using that group

  • Team notifications: Notify entire team simultaneously

  • Organized: Group by function (DB team, Network team, On-call rotation)

Common recipient groups:

  • "On-Call Engineers" - Current on-call rotation members

  • "Database Team" - All database administrators

  • "Network Operations" - NOC team members

  • "Management" - For escalation to leadership

Use cases:

  • "Notify entire team for critical alerts" → Use group instead of 5 individual recipients

  • "Rotate on-call" → Update group members without touching escalation chains

  • "Add new team member" → Add to group, automatically included in alerts

Workflow: Use this tool to find groups, then use in escalation chains to notify multiple people at once.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_recipient_group" (details), "list_recipients" (individual members), "list_escalation_chains" (see usage).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint: true, so the description does not need to reiterate safety. It adds valuable behavioral context: negative total indicates incomplete results, pagination handling with autoPaginate, and explanation of recipient groups. No contradictions.

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

Conciseness5/5

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

The description is well-structured with sections (returns, what are, when to use, benefits, etc.) and is front-loaded with core purpose. Every sentence adds meaning, and the length is appropriate for the context provided.

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

Completeness5/5

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

Given the complexity and absence of output schema, the description is comprehensive. It explains return format, pagination, examples of groups, use cases, and workflow integration with related tools. No gaps.

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

Parameters4/5

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

Input schema has 100% description coverage for 5 parameters. The description adds context about pagination behavior (negative total) and autoPaginate, which goes beyond schema descriptions. Baseline 3 increased to 4 due to added value.

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

Purpose5/5

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

The description clearly states 'List all recipient groups in LogicMonitor (LM) monitoring' and specifies the return value. It distinguishes from sibling tools like 'list_recipients' and 'list_escalation_chains' by mentioning related tools, and provides specific use cases and examples.

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

Usage Guidelines4/5

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

The description provides explicit 'When to use' bullet points (find group IDs, audit teams, etc.) and contrasts with individual recipients. It includes benefits and workflow. However, it lacks explicit 'when not to use' guidelines, though context is sufficient.

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

list_recipientsA
Read-only

List all alert recipients (individual notification targets) in LogicMonitor (LM) monitoring.

Returns: Array of recipients with: id, type (email/SMS/webhook), contact information, method (email address, phone number, webhook URL), name, status.

What are recipients: Individual notification endpoints used in escalation chains. Can be: email addresses, SMS/phone numbers, webhook URLs, or integration endpoints (Slack, PagerDuty, etc.).

When to use:

  • Find recipient IDs for escalation chain configuration

  • Audit who can receive alerts

  • Verify contact information is current

  • Review notification endpoints before updating escalation chains

Recipient types explained:

  • Email: Email address (e.g., oncall@company.com, john.doe@company.com)

  • SMS: Mobile phone number (e.g., +1-555-123-4567)

  • Voice: Phone number for voice calls

  • Arbitrary: Custom webhooks for external integrations

Common use cases:

  • "Who can receive critical production alerts?" → List recipients used in escalation chains

  • "Update on-call phone number" → Find recipient by name, update contact info

  • "Add new team member to alerts" → Create recipient, add to escalation chain

  • "Remove former employee" → Find and delete recipient

Recipients vs Recipient Groups:

  • Recipients: Individual targets (one email, one phone)

  • Recipient Groups: Collections of recipients (notify entire team at once)

Workflow: Use this tool to find available recipients, then use in "create_escalation_chain" or "update_escalation_chain" to set up notifications.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_recipient" (details), "list_recipient_groups" (group management), "list_escalation_chains" (see who gets notified).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations provide readOnlyHint=true, confirming safe read operation. The description goes beyond by detailing the return format (array with specific fields), noting that a negative total indicates incomplete results, and explaining pagination 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.

Conciseness4/5

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

The description is well-structured with clear sections but is somewhat verbose. Some information (e.g., recipient types) is repeated in two places. It front-loads the core purpose and uses bullet points, but could be slightly more concise.

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

Completeness5/5

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

The description is comprehensive: covers return format, use cases, workflows, related tools, and potential pitfalls (negative total). It explains pagination and filtering hints. Given no output schema, it fully compensates with detailed return array description.

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

Parameters3/5

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

Input schema coverage is 100% with detailed parameter descriptions. The tool description adds minimal new information about parameters (mainly the pagination note about negative total, which is more behavioral than parameter-specific). The schema already adequately explains each parameter, so the description provides marginal added value.

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

Purpose5/5

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

The description clearly states 'List all alert recipients' and explains what recipients are, distinguishing them from associated concepts like recipient groups. It uses specific verb (list) and resource (alert recipients), and differentiates from sibling tools such as get_recipient, list_recipient_groups, and list_escalation_chains.

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

Usage Guidelines5/5

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

The description explicitly enumerates when to use the tool (find IDs, audit, verify, review) and provides a workflow section showing how it fits with create/update escalation chains. It contrasts recipients vs. recipient groups to guide tool selection.

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

list_report_groupsA
Read-only

List all report groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of report groups with: id, name, parentId, full path, description, number of reports, number of subgroups.

What are report groups: Organizational folders for reports, like directories for files. Used to categorize reports by audience, frequency, purpose, or department.

When to use:

  • Browse report organization before creating reports

  • Find group IDs for report operations

  • Understand report hierarchy

  • Navigate to specific report folders

Common organization patterns:

  • By audience: "Executive Reports", "Operations Reports", "Customer Reports"

  • By frequency: "Daily Reports", "Weekly Reports", "Monthly Reports"

  • By department: "IT Reports", "Finance Reports", "Compliance Reports"

  • By type: "SLA Reports", "Capacity Reports", "Alert Summary Reports"

Use cases:

  • Organize reports for different stakeholders

  • Group compliance/audit reports separately

  • Separate internal vs customer-facing reports

  • Structure reports by delivery schedule

Workflow: Use this tool to browse hierarchy, then "list_reports" filtered by groupId to see reports in specific folder.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_report_group" (details), "list_reports" (reports in group), "create_report_group" (create folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, confirming safe read. The description adds behavioral details: return format (array of groups with fields), pagination behavior, autoPaginate option, and an important caveat about negative 'total' indicating incomplete results. 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.

Conciseness4/5

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

The description is well-structured with clear sections (returns, what are, when to use, common patterns, use cases, workflow, important). It front-loads the main action. Some sections (e.g., common patterns) are detailed but contribute to understanding; overall not overly verbose.

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

Completeness5/5

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

The description fully covers the tool's purpose, return format, pagination behavior, use cases, related tools, and a critical caveat. No output schema exists, but the description compensates by outlining the return fields. For a list tool with a well-defined schema, this is highly complete.

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

Parameters4/5

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

All 5 parameters have schema descriptions (100% coverage). The description supplements with behavioral context beyond schema, such as the autoPaginate toggle effect and the negative total warning related to pagination. This adds value without repeating schema content.

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

Purpose5/5

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

The description explicitly states 'List all report groups (folders) in LogicMonitor (LM) monitoring.' It clearly identifies the verb (list) and resource (report groups), and distinguishes from sibling tools like 'get_report_group' by explaining that this tool provides a list for browsing hierarchy.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use' section with bullet points (e.g., browse organization, find group IDs) and a 'Related tools' section naming alternatives like 'list_reports' and 'get_report_group'. It also outlines a workflow: browse with this tool, then use 'list_reports' filtered by groupId.

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

list_reportsA
Read-only

List all reports (scheduled and on-demand) in LogicMonitor (LM) monitoring.

Returns: Array of reports with: id, name, type (alert/availability/capacity/performance), description, schedule, recipients, format (PDF/HTML/CSV), last run time.

What are reports: Scheduled or on-demand documents summarizing monitoring data. Generate PDFs, HTML, or CSV files with metrics, alerts, availability statistics, capacity planning data. Automatically email to stakeholders.

When to use:

  • Find existing reports before creating duplicates

  • Review report schedules

  • Check who receives reports

  • Audit reporting configuration

Report types:

  • Alert Reports: Summary of alerts over time period (count by severity, MTTR, top alerting resources/devices)

  • Availability Reports: Uptime statistics, SLA compliance, outage summaries

  • Capacity Planning: Disk growth trends, CPU/memory usage over time, forecasting

  • Performance Reports: Metric trends, top consumers, performance baselines

  • Custom Reports: User-defined queries and visualizations

Common use cases:

  • Executive summaries: Monthly availability report to leadership

  • SLA reporting: Prove 99.9% uptime to customers

  • Capacity planning: Forecast when to add storage/servers

  • Compliance: Document monitoring coverage and alert response

  • Billing: Usage reports for chargebacks

Report schedules:

  • Daily: 8am delivery for NOC shift handoff

  • Weekly: Monday morning management briefing

  • Monthly: End-of-month SLA reports

  • Quarterly: Capacity planning reviews

  • On-demand: Generate for specific incidents/audits

Workflow: Use this tool to find reports, then "get_report" for details, or "generate_report" to run on-demand.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_report" (details), "list_report_groups" (organization), "generate_report" (run now).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Discloses return format (array of reports with fields), pagination behavior (negative total, autoPaginate), and provides rich additional context like report types, use cases, and schedules. Annotations declare readOnlyHint=true, and description aligns with that.

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

Conciseness4/5

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

Well-structured with headers and bullet points, front-loading the main purpose. However, the extensive educational material on report types and use cases adds length. Could be trimmed without losing essential guidance, but still organized.

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

Completeness5/5

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

No output schema exists, so the description compensates by detailing return fields and behavior. Covers pagination, filter, fields, and related tools. Comprehensive enough for an agent to use correctly in various scenarios.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining pagination parameters in context (size, offset, autoPaginate) and filter syntax. It does not repeat parameter descriptions but provides useful usage tips beyond basics.

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

Purpose5/5

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

The description clearly states 'List all reports (scheduled and on-demand) in LogicMonitor (LM) monitoring.' It uses a specific verb (list) and resource (reports), and distinguishes from sibling tools like 'get_report' (details) and 'list_report_groups' (organization).

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

Usage Guidelines5/5

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

Explicit guidance on when to use (e.g., find existing reports before creating duplicates, review schedules) and when not (e.g., use 'get_report' for details). It also mentions related tools and workflows, including a 'Important' note about negative total indicating incomplete results.

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

list_resource_datasourcesA
Read-only

List datasources applied to a specific resource/device in LogicMonitor (LM) monitoring.

Returns: Array of datasources actively monitoring this resource/device with: id (deviceDataSourceId), dataSourceName, dataSourceDisplayName, status, alert status, instance count, last poll time.

When to use:

  • See what's being monitored on a resource/device

  • Verify datasource is collecting data

  • Get deviceDataSourceId for metric retrieval

  • Troubleshoot missing data

  • Check datasource health

What you discover:

  • Which datasources are active (e.g., WinCPU, WinMemory, SNMP_Network_Interfaces)

  • How many instances per datasource (e.g., 3 disks, 4 network interfaces)

  • Collection status: Collecting data vs errors

  • Alert status: Any active alerts from this datasource

This is step 1 for getting metrics: Complete workflow to retrieve metric data: 1. Use this tool → get deviceDataSourceId for datasource you want (e.g., WinCPU) 2. Use "list_device_instances" → get instanceId for specific instance 3. Use "get_device_instance_data" → get actual metric values

Troubleshooting use cases:

  • "Why no CPU data?" → Check if WinCPU datasource is applied and collecting

  • "Find disk datasource" → Look for datasource with "disk" or "volume" in name

  • "Check datasource errors" → Review status field for error messages

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "list_device_instances" (next step), "get_device_instance_data" (get metrics), "update_device_datasource" (enable/disable).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe resource/device ID
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, and description adds critical behavioral details: negative total indicates incomplete results, pagination behavior described, and return fields listed. 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.

Conciseness4/5

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

Well-structured with sections (When to use, What you discover, Workflow, Troubleshooting, Important). Each section earns its place, but the description is slightly lengthy; could be more concise.

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

Completeness5/5

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

Given no output schema, description compensates by detailing return fields. Covers pagination, filtering, troubleshooting, and workflow. Context from siblings shows this tool is unique for listing datasources on a resource.

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

Parameters4/5

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

Schema coverage is 100% (all params described). Description adds context beyond schema: autoPaginate behavior, filter syntax with examples, fields parameter usage. Does not cover every nuance but adds significant value.

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

Purpose5/5

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

The description clearly states the verb and resource: 'List datasources applied to a specific resource/device'. It distinguishes from sibling tools like 'get_resource_datasource' (single) and other list tools (different entities).

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

Usage Guidelines4/5

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

Includes a 'When to use' section with specific use cases and a workflow (step 1 for metrics). Mentions related tools but does not explicitly state when NOT to use this tool or alternatives beyond the workflow.

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

list_resource_group_propertiesA
Read-only

List all custom properties for a specific resource/device group in LogicMonitor (LM) monitoring. Properties set at group level are inherited by all resource/device in the group.

Returns: Array of properties with: name, value, type (custom vs system), and inheritance source.

When to use:

  • Review properties before bulk updates

  • Audit credentials/settings applied to resource/device group

  • Verify property inheritance from parent groups

  • Check which properties resource/device will inherit when added to group

  • Document group configuration

What are group properties: Key-value pairs set at group level that ALL resource/device in the group inherit. Common uses: credentials (SSH/SNMP), environment tags, owner/team info, monitoring settings.

Property inheritance:

  • Properties set on group apply to ALL resource/device in group

  • Child groups inherit from parent groups

  • Device-level properties override group properties

  • Used by datasource "appliesTo" logic and authentication

Common group properties:

  • Credentials: ssh.user, ssh.pass, snmp.community, wmi.user, wmi.pass

  • Tags: env (production/staging), location (datacenter), owner (team name)

  • Business metadata: cost.center, sla.tier, compliance.level

  • Monitoring config: polling.interval, alert.threshold.multiplier

Use cases:

  • Audit credentials: Check which credentials are configured for group

  • Before bulk update: See current values before changing

  • Troubleshoot authentication: Verify credentials applied to resource/device

  • Document configuration: Export group settings

Workflow: Use "list_resource_groups" to find groupId, then use this tool to see properties, then "update_device_group_property" to modify.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "update_device_group_property" (modify property), "get_resource_group" (group details), "list_device_properties" (device-level properties).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe resource/device group ID
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool is read-only. The description adds details about return format (array of properties with fields) and an important behavioral note about negative 'total' values indicating incomplete results and pagination behavior. This goes 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.

Conciseness4/5

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

The description is relatively long but well-structured with sections (When to use, Property inheritance, Common properties, Use cases, Workflow, Important). It is front-loaded with the core purpose. Each section adds value, though some redundancy exists (e.g., use cases overlapping with when-to-use).

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

Completeness5/5

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

Despite no output schema, the description explains the return format and lists possible fields (name, value, type, inheritance source). It covers domain context like property inheritance, common examples, and workflow. For a list tool, this is highly complete and leaves minimal ambiguity.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add significant parameter-specific semantics beyond the schema. It provides context about property types and inheritance but doesn't elaborate on individual parameters. The schema descriptions are sufficient.

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

Purpose5/5

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

The description clearly states it lists custom properties for a resource/device group, and distinguishes from related tools like list_resource_properties (device-level) and update_device_group_property. The specific verb 'list' and resource 'group properties' are unambiguous.

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

Usage Guidelines4/5

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

The description provides a dedicated 'When to use' section with specific scenarios (bulk updates, audit, verify inheritance) and a workflow linking to sibling tools. It lacks explicit when-not-to-use but offers clear guidance on appropriate use cases.

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

list_resource_groupsA
Read-only

List all resource/device groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of groups with: id, name, parentId, full path, description, number of resources/devices, number of subgroups, custom properties.

What are groups: Organizational folders for resources/devices, like directories in a file system. Used to organize by location, environment, customer, or any logical structure.

When to use:

  • Browse resource/device organization

  • Find group IDs for resource/device creation/assignment

  • Understand resource/device hierarchy

  • Get group IDs for group-level operations (properties, SDT)

Common use cases:

  • Geographic: "US-West", "EU-Central", "APAC"

  • Environment: "Production", "Staging", "Development"

  • Customer: "Customer-A", "Customer-B" (for MSPs)

  • Function: "Web Servers", "Database Servers", "Network resources/Devices"

Common filter patterns:

  • By name: filter:"name~*Production*"

  • Root groups: filter:"parentId:1"

  • Non-empty: filter:"numOfDirectDevices>0"

Groups inherit properties: Custom properties set on group are inherited by all resource/device in that group (useful for credentials, location tags).

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_resource_group" (details), "create_resource_group" (create new), "list_resource_group_properties" (group properties).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Adds behavioral context beyond readOnlyHint annotation: explains negative total meaning, pagination, property inheritance, and filter syntax.

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

Conciseness4/5

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

Well-structured with sections, front-loaded purpose, but lengthy; every sentence is useful but could be slightly more concise.

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

Completeness5/5

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

Completes the picture with output structure, use cases, filter patterns, property inheritance, and related tools, compensating for no output schema.

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

Parameters4/5

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

Schema coverage is 100%, description adds value with filter pattern examples and pagination guidance, but does not deeply elaborate on each parameter.

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

Purpose5/5

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

Clearly states the tool lists all resource/device groups, defines what groups are, and distinguishes from siblings like get_resource_group and list_resource_group_properties.

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

Usage Guidelines5/5

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

Explicitly lists when to use with bullet points, provides common use cases and filter patterns, and mentions related tools for alternatives.

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

list_resource_instancesA
Read-only

List instances of a datasource on a specific resource/device in LogicMonitor (LM) monitoring.

Returns: Array of instances with: id, name, displayName, description, status, alert status, last collection time.

What are instances: Individual components monitored by a datasource. Examples: individual disks (C:, D:, E:), network interfaces (eth0, eth1), database tables, processes.

When to use:

  • List all disks on a server before getting disk metrics

  • Find specific network interface for bandwidth data

  • Discover what instances are being monitored

  • Get instance IDs for metric retrieval

Example workflow: Device "web-server-01" has datasource "WinVolumeUsage-" → instances: C:, D:, E: (each disk is an instance) Device "router-01" has datasource "SNMP_Network_Interfaces" → instances: GigabitEthernet0/1, GigabitEthernet0/2 (each interface is an instance)

Complete workflow to get metrics:

  • Use "list_resource_datasources" to get deviceDataSourceId

  • Use this tool to list instances and get instanceId

  • Use "get_resource_instance_data" with instanceId to get actual metrics

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "list_resource_datasources" (first step), "get_resource_instance_data" (get metrics).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe resource/device ID
deviceDataSourceIdYesThe resource/device datasource ID
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=true, and description aligns perfectly by describing a read operation. Adds behavioral context beyond annotations: return structure (array with fields), pagination behavior, and significance of negative total. No contradictions.

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

Conciseness4/5

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

Description is well-structured with headers and bullet points, front-loading purpose. While somewhat lengthy, every section serves a purpose (examples, workflow, important notes). Minor verbosity is justified for a tool involved in multi-step processes.

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

Completeness5/5

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

Given no output schema, description compensates by listing returned fields. Explains concept of instances, provides examples, details pagination behavior, and outlines complete workflow. Covers all essential context for an agent to use the tool correctly.

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

Parameters4/5

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

Input schema has 100% description coverage, so baseline is 3. Description adds value by explaining workflow context (deviceDataSourceId from list_resource_datasources), filter syntax examples, and autoPaginate behavior, which goes beyond schema descriptions.

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

Purpose5/5

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

Description clearly states the tool lists instances of a datasource on a specific resource/device, with a specific verb and resource. It distinguishes from sibling tools like list_resource_datasources by focusing on instances rather than datasources.

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

Usage Guidelines5/5

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

Explicitly provides 'When to use' bullets and a 'Complete workflow to get metrics' that positions this tool in a sequence with siblings. Also warns about negative total indicating incomplete results and suggests pagination, giving clear guidance on when to use pagination.

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

list_resource_propertiesA
Read-only

List all custom properties (system and user-defined) for a specific resource/device in LogicMonitor (LM) monitoring.

Returns: Array of properties with: name, value, source (device-level vs inherited from group), type (system vs custom).

When to use:

  • Review resource/device configuration

  • Check credentials/authentication settings

  • See inherited vs device-specific properties

  • Troubleshoot datasource applies logic

  • Audit resource/device metadata

Property types:

System properties (auto-populated by LogicMonitor):

  • system.hostname: Device hostname

  • system.devicetype: Device category (server, network, cloud)

  • system.ips: IP addresses

  • system.categories: Auto-detected technologies (e.g., "AWS/EC2")

Custom properties (user-defined):

  • Credentials: ssh.user, snmp.community, wmi.user

  • Tags: env (prod/staging), owner (team name), location

  • Integration IDs: servicenow.ci_id, jira.project

  • Business metadata: cost.center, sla.tier, backup.policy

Property inheritance: Properties can be set at: Device level (highest priority) → Group level → Parent group (inherited).

Datasource appliesTo logic uses properties: Many datasources check properties to decide if they should monitor device. Example: AWS_EC2 datasource checks if resource/device has "aws.resourcetype=ec2" property.

Workflow: Use "list_resources" to find deviceId, then use this tool to see all properties including inherited ones.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "update_device_property" (modify), "get_resource" (see summary), "list_datasources" (see how properties affect monitoring).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe resource/device ID
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds significant behavioral context: return structure (name, value, source, type), inheritance hierarchy, the meaning of a negative 'total' value, and pagination details. This goes beyond the annotations to help the agent understand edge cases and output interpretation.

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

Conciseness4/5

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

The description is well-structured with sections (Returns, When to use, Property types, Workflow, Important note) and front-loaded with the core purpose. It is relatively long but every section adds value, though some examples (e.g., detailed property lists) could be trimmed without losing essential guidance.

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

Completeness5/5

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

For a tool with 6 parameters, no enums, no output schema, and 100% schema coverage, the description provides thorough context: usage scenarios, inheritance details, pagination pitfalls, property type examples, and a suggested workflow ('Use list_resources to find deviceId, then use this tool'). It covers what the agent needs to use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with good parameter descriptions. The description adds contextual usage notes (e.g., pagination behavior, filter examples) that aren't in the schema, but it doesn't significantly augment the semantics of individual parameters 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.

Purpose5/5

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

The description starts with a specific verb ('List') and resource ('properties for a resource/device'), clearly distinguishing from sibling tools like list_resource_group_properties. It explicitly states the scope (system and user-defined) and the product (LogicMonitor).

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

Usage Guidelines4/5

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

The description includes a 'When to use' section listing five concrete scenarios (review configuration, check credentials, see inheritance, troubleshoot datasource, audit metadata) and mentions related tools (update_device_property, get_resource, list_datasources). It provides clear context for appropriate usage, though it could explicitly state when not to use.

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

list_resourcesA
Read-only

List all monitored resources/devices in LogicMonitor (LM) monitoring.

Returns: Array of resource/device with: id, displayName, name (IP/hostname), hostStatus (dead/alive/unknown), preferredCollectorId, deviceType, custom properties, group memberships.

When to use:

  • Get inventory of all monitored resources/devices

  • Find specific resource/device by name/IP/property

  • Check resource/device health status

  • Get resource/device IDs for other operations

Two search modes:

  • Simple search: Use query parameter with free text (e.g., query:"production", query:"web-server") - automatically searches displayName, description, and name fields

  • Advanced filtering: Use filter parameter with LM filter syntax (e.g., filter:"hostStatus:alive,displayName~*web*") for precise control

Common filter patterns:

  • By name: filter:"displayName~*prod*" (wildcard search)

  • By status: filter:"hostStatus:alive" or filter:"hostStatus:dead"

  • By type: filter:"systemProperties.name:system.devicetype,value:server"

  • By custom property: filter:"customProperties.name:company.team,customProperties.value:teamA"

  • By collector: filter:"preferredCollectorId:123"

  • Multiple conditions: filter:"hostStatus:alive,displayName~*web*" (comma = AND)

Query vs Filter:

  • query: Simplified search across displayName, description, name (OR logic). Use for quick lookups: query:"prod-web-01"

  • filter: Precise LM filter syntax with any field. Use for complex conditions: filter:"hostStatus:alive,displayName~*prod*"

  • If both provided, query is converted to filter and combined with provided filter using AND logic

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Performance tips: Use autoPaginate:false for large environments (>1000 resources/devices) and paginate manually to avoid timeouts.

Related tools: "get_resource" (details), "generate_resource_link" (get UI link).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSimple search query. Free text (e.g., "production", "web-server", "192.168.1.100") automatically searches across displayName, description, and name fields. Can also use filter syntax (e.g., "hostStatus:alive") which gets formatted automatically.
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, and the description confirms read-only behavior. It additionally discloses potential incomplete results (negative total), autoPaginate default behavior, and performance considerations. No contradictions.

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

Conciseness4/5

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

Well-structured with sections, bullet points, and examples. Every section adds value, but some redundancy exists (e.g., query vs filter explained twice). Not perfectly concise but still clear and organized.

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

Completeness5/5

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

Given the tool's complexity (6 parameters, no output schema), the description covers usage contexts, both search modes with examples, filter syntax, pagination handling, and performance guidance. It also links to related tools. Highly complete.

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

Parameters4/5

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

Input schema has 100% coverage, but the description adds significant value by explaining search modes (query vs filter), common filter patterns, and pagination behavior. It goes beyond the schema's minimal descriptions, warranting a score above baseline.

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

Purpose5/5

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

The description clearly states it lists all monitored resources/devices in LogicMonitor. It distinguishes from sibling tools like get_resource (details) and generate_resource_link (UI link), and uses specific verbs and resource naming.

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

Usage Guidelines5/5

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

Explicitly states when to use (inventory, find by name/IP, check health, get IDs), compares query vs filter search modes, provides common filter patterns, and mentions pagination and performance tips. Also references related tools.

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

list_rolesA
Read-only

List all roles (permission sets) in LogicMonitor (LM) monitoring.

Returns: Array of roles with: id, name, description, custom flag, associated users count, permissions (view/manage/delete for resources/alerts/reports/settings).

What are roles: Permission templates assigned to users. Control who can view/modify/delete resources, alerts, dashboards, settings. Essential for RBAC (role-based access control).

When to use:

  • Discover available roles before creating users

  • Audit permission structure

  • Find role IDs for user assignment

  • Compare custom vs built-in roles

  • Compliance documentation

Built-in roles (examples):

  • administrator: Full access to everything

  • readonly: View-only access to monitoring data

  • manager: Manage resources/devices/alerts but not settings

Custom roles: Organizations create custom roles for specific needs (e.g., "database-team-role", "view-prod-only").

Common use cases:

  • "What roles exist?" → List all to see options

  • "Who can delete resources/devices?" → Check which roles have delete permissions

  • "Create read-only user" → Find "readonly" role ID for user creation

Workflow: Use this tool to discover roles, then "get_role" for detailed permissions, then use in "create_user" or "update_user".

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_role" (detailed permissions), "list_users" (see user assignments), "create_user" (assign roles to new users).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds behavior beyond: notes that a negative 'total' indicates incomplete results, explains pagination and autoPaginate, and mentions result shape. This supplements the annotation with practical behavioral details.

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

Conciseness3/5

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

Well-structured with sections, but somewhat lengthy. Contains explanatory text like 'What are roles' which may be extraneous. Could be more concise without losing key information.

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

Completeness4/5

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

With 5 parameters, no output schema, and read-only annotation, description provides sufficient context: return shape, pagination, filter syntax, common use cases, and workflow. Lacks error handling or rate limits, but overall complete for typical use.

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

Parameters4/5

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

Schema coverage is 100% with good descriptions. Description adds extra meaning: explains filter syntax with examples, autoPaginate behavior, and fields parameter usage. Enhances understanding beyond schema.

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

Purpose5/5

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

The description clearly states 'List all roles (permission sets) in LogicMonitor (LM) monitoring.' It specifies verb (list) and resource (roles), and differentiates from siblings by referencing related tools like get_role and create_user.

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

Usage Guidelines5/5

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

Explicitly lists when to use: discover roles before creating users, audit permissions, find role IDs, compare roles, compliance. Provides workflow: use this tool, then get_role, then create_user. Offers clear context and alternatives.

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

list_sdtsA
Read-only

List all Scheduled Down Times (SDTs) in LogicMonitor (LM) monitoring.

Returns: Array of SDTs with: id, type (DeviceSDT/DeviceGroupSDT/etc), device/group name, start/end times, duration, comment, creator, status (active/scheduled/expired).

What are SDTs: Maintenance windows that suppress alerting to prevent false alarms during planned work. No alerts are generated during SDT periods.

When to use:

  • View active maintenance windows

  • Check upcoming scheduled maintenance

  • Verify SDT was created correctly

  • Find SDTs to extend or cancel

  • Audit who scheduled downtime

Common filter patterns:

  • Active now: filter:"isEffective:true"

  • Future SDTs: filter:"startDateTime>{epoch}"

  • By device: filter:"deviceDisplayName~*prod-web*"

  • One-time vs recurring: filter:"type:oneTime" or filter:"type:monthly"

  • By creator: filter:"admin:john.doe"

SDT types explained:

  • DeviceSDT: All monitoring on specific resource/device

  • DeviceGroupSDT: All resource/device in group

  • DeviceDataSourceSDT: Specific datasource on resource/device

  • DeviceDataSourceInstanceSDT: Specific instance only (e.g., C: drive)

Best practice: Always add meaningful comment explaining maintenance reason for audit trail.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "create_resource_sdt" (schedule maintenance), "delete_sdt" (cancel maintenance), "get_sdt" (details).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true. Description adds value by explaining that SDTs suppress alerting during maintenance, describes return structure, and warns about negative total values indicating incomplete results. 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.

Conciseness4/5

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

While longer, the description is well-structured with clear sections (returns, what are SDTs, when to use, filter patterns, types, best practice, important note, related tools). Front-loaded with main purpose. Slightly verbose but every sentence adds value.

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

Completeness5/5

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

Despite no output schema, description fully documents return structure. Covers edge cases (negative total), best practices (meaningful comments), and common use cases. For a list tool with 5 parameters and no output schema, this is complete and self-contained.

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

Parameters5/5

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

Schema coverage is 100% with descriptions for all 5 parameters. Description adds filter pattern examples (e.g., 'isEffective:true') and clarifies autoPaginate behavior beyond schema, providing meaningful additional context.

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

Purpose5/5

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

The description clearly states 'List all Scheduled Down Times (SDTs) in LogicMonitor (LM) monitoring.' It uses a specific verb+resource combination and explains what SDTs are, distinguishing it from sibling tool 'get_sdt' which retrieves a single SDT.

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

Usage Guidelines5/5

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

Provides explicit 'When to use' section with five specific scenarios (view active, check upcoming, verify creation, etc.), common filter patterns, SDT types explained, and related tools. This gives comprehensive guidance on when to use this tool vs alternatives.

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

list_service_groupsA
Read-only

List all service groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of service groups with: id, name, parentId, full path, description, number of services, number of subgroups.

What are service groups: Organizational folders for business services, similar to resource/device groups for resources/devices. Used to categorize services by business unit, region, customer, or application stack.

When to use:

  • Browse service organization before creating services

  • Find group IDs for service operations

  • Understand service hierarchy

  • Navigate to specific service folders

Common organization patterns:

  • By business unit: "E-Commerce", "Marketing Platform", "Internal IT"

  • By customer: "Customer A Services", "Customer B Services" (MSP environments)

  • By region: "APAC Services", "EMEA Services", "Americas Services"

  • By tier: "Tier 1 Critical", "Tier 2 Standard", "Tier 3 Best Effort"

Use cases:

  • Organize services for different stakeholders

  • Group services by SLA tiers

  • Separate internal vs customer-facing services

  • Structure multi-tenant service monitoring

Workflow: Use this tool to browse hierarchy, then "list_services" filtered by groupId to see services in specific folder.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_service_group" (details), "list_services" (services in group), "create_service_group" (create folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, and the description adds value by detailing return fields, the meaning of negative total, and pagination behavior. No contradictions.

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

Conciseness4/5

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

The description is well-structured with sections, but slightly lengthy. However, each section adds value, and the key purpose is front-loaded. Minor deduction for verbosity.

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

Completeness5/5

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

Given 5 parameters and no output schema, the description covers return fields, use cases, organization patterns, workflow, and pagination details. It is comprehensive and leaves no critical gaps.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already describes all parameters. The description adds context like the meaning of negative total and the effect of autoPaginate, which is valuable beyond schema.

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

Purpose5/5

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

The description clearly states 'List all service groups (folders) in LogicMonitor (LM) monitoring.' It specifies the verb (list) and resource (service groups), and distinguishes from sibling tools like get_service_group (details) and list_services (services in group).

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

Usage Guidelines5/5

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

The 'When to use' section explicitly lists scenarios: browse before creating, find IDs, understand hierarchy, navigate. It also provides workflow guidance and mentions related tools, helping the agent choose 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.

list_servicesA
Read-only

List all business services in LogicMonitor (LM) monitoring.

Returns: Array of services with: id, name, description, health status, dependencies, monitored resources, service level objectives (SLOs), availability percentage.

What are services: Business-level monitoring constructs that aggregate multiple resources/devices/resources into a single health status. Represent customer-facing services, applications, or business processes. Example: "E-Commerce Platform" service includes web servers, databases, load balancers, and APIs - one health indicator for entire platform.

When to use:

  • Monitor business service health vs individual resource/device health

  • Track SLA compliance for customer-facing services

  • Understand service dependencies

  • Create business-level dashboards

  • Report on application availability

Service health calculation: Service health = Aggregate of all dependent resources. If critical resource fails, service status = down. Allows stakeholders to see "Is the application working?" instead of "Is server X working?"

Use cases and examples:

Customer-facing services:

  • "E-Commerce Website" - Web servers + database + payment gateway + CDN

  • "Mobile App Backend" - API servers + auth service + push notifications

  • "SaaS Platform" - All infrastructure for multi-tenant application

Internal services:

  • "Employee VPN" - VPN servers + RADIUS auth + firewall

  • "Corporate Email" - Mail servers + spam filter + archiving

  • "CI/CD Pipeline" - Jenkins + artifact storage + deployment agents

Benefits:

  • Business perspective: Non-technical stakeholders understand "Shopping Cart is 99.5% available"

  • SLA tracking: Measure uptime for customer SLAs

  • Root cause: When service is down, see which specific resource failed

  • Dependencies: Visualize what resources comprise a service

Common filter patterns:

  • By status: filter:"status:normal" or filter:"status:dead"

  • By name: filter:"name~production"

Workflow: Use this tool to find services, then "get_service" for detailed dependency tree and health status.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_service" (details and dependencies), "list_service_groups" (organization), "create_service" (define new business service).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.8/5.0
Behavior5/5

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

The description adds behavioral context beyond the readOnlyHint annotation, including details about return fields (with examples), the meaning of negative 'total' for pagination, and health calculation. 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.

Conciseness4/5

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

The description is well-structured with sections and front-loaded key information, but it is lengthy. While rich, it could be more concise without losing value.

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

Completeness5/5

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

Even without an output schema, the description thoroughly explains the return format, concepts, use cases, and workflow, making it complete for agent decision-making.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value with filter pattern examples, explanation of autoPaginate behavior, and the negative total note, justifying a higher score.

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

Purpose5/5

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

The description clearly states the tool lists all business services in LogicMonitor, explains what services are, and distinguishes from sibling tools like 'get_service' and 'list_service_groups'. It uses specific verbs and context.

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

Usage Guidelines5/5

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

Provides explicit 'When to use' bullet points, common filter patterns, a workflow, and lists related tools, offering clear guidance on when to use this tool vs alternatives.

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

list_usersA
Read-only

List all users in LogicMonitor (LM) monitoring.

Returns: Array of users with: id, username, email, roles, status (active/suspended), last login time, created date, API token count.

When to use:

  • Audit user access

  • Find user IDs for API token management

  • Check who has admin access

  • Identify inactive users

  • Compliance reporting

Common filter patterns:

  • Active users: filter:"status:active"

  • By email: filter:"email~*@company.com"

  • By role: filter:"roles:*administrator*"

  • Recent logins: filter:"lastLoginOn>{epoch}"

  • Never logged in: filter:"lastLoginOn:0"

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_user" (details), "list_roles" (available roles), "list_api_tokens" (user's API tokens).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true. The description adds value by disclosing behavior: it reveals the return structure (array of users with specific fields) and an important warning about negative 'total' values indicating incomplete results and requiring pagination. This goes 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.

Conciseness4/5

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

The description is well-structured with clear sections (Returns, When to use, Common filter patterns, Important, Related tools) and is front-loaded with the core purpose. It provides substantial information without being overly verbose for a tool of this complexity.

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

Completeness4/5

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

Given the 5 optional parameters, no output schema, and read-only annotation, the description covers return values, usage scenarios, pagination quirks, and filter examples adequately. It could mention error handling or rate limits but is sufficiently complete for typical use.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-defined. The description adds common filter pattern examples and emphasizes autoPaginate behavior, which provides practical meaning beyond the schema's formal definitions.

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

Purpose5/5

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

The description clearly states 'List all users in LogicMonitor (LM) monitoring' with a specific verb and resource. It distinguishes from sibling tools like 'get_user' and 'list_roles' by explicitly mentioning related tools.

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

Usage Guidelines5/5

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

The description includes a 'When to use' section listing concrete use cases (audit user access, find user IDs, etc.) and provides common filter patterns for real-world queries, giving clear context for when to invoke this tool.

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

list_website_checkpointsA
Read-only

List available checkpoint locations for website monitoring in LogicMonitor (LM) monitoring.

Returns: Array of checkpoint locations with: id, name, geographic region, status, type (internal/external).

What are checkpoints: Global testing locations from which LogicMonitor runs synthetic website checks. Think "test my website from New York, London, Tokyo" - checkpoints are those global vantage points.

When to use:

  • Check available checkpoint locations before creating website monitors

  • Verify geographic coverage for multi-region testing

  • Select appropriate locations for SLA monitoring

  • Plan website monitoring strategy

Checkpoint types:

  • External (Cloud): LogicMonitor-managed locations around the world (US-East, EU-West, Asia-Pacific, etc.)

  • Internal (Collector-based): Tests run from your own collectors (test internal apps, VPNs, private networks)

Common checkpoint locations:

  • North America: US-East, US-West, US-Central, Canada

  • Europe: EU-West (Ireland), EU-Central (Frankfurt), UK

  • Asia-Pacific: Singapore, Sydney, Tokyo

  • South America: SĂŁo Paulo

Use cases:

  • Global SLA monitoring: Test from regions where customers are located

  • CDN verification: Ensure content delivery works worldwide

  • Regional compliance: Monitor from specific geographic locations

  • Multi-region performance: Compare response times across locations

  • Failover testing: Verify DR sites accessible from all regions

Best practices:

  • Select checkpoints near your user base

  • Use multiple checkpoints for critical services (avoid false positives from single location issues)

  • Mix internal and external checkpoints for comprehensive coverage

  • Consider timezone differences for result interpretation

Workflow: Use this tool to discover available locations, then use those checkpoint IDs when creating website monitors via "create_website".

Related tools: "list_websites" (existing monitors), "create_website" (configure checkpoints), "get_website" (verify checkpoint configuration).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so the description adds context about checkpoint types (internal/external), return fields, and use cases without contradicting annotations.

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

Conciseness3/5

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

Well-structured with headings but verbose, containing extensive background on checkpoints, use cases, and best practices that could be condensed for a simple list tool.

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

Completeness5/5

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

Given the tool's simplicity (1 optional param, no output schema), the description fully covers purpose, usage, workflow, and return details.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema's parameter description for 'fields'.

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

Purpose5/5

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

Clearly states 'List available checkpoint locations for website monitoring' with specific verb and resource. Distinguishes from siblings like 'list_websites' via the 'Related tools' section.

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

Usage Guidelines4/5

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

Explicit 'When to use:' section with four bullet points and a 'Workflow' subsection that describes when to use before creating monitors. Mentions alternative tools like 'list_websites' and 'create_website', but does not explicitly state when NOT to use.

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

list_website_groupsA
Read-only

List all website groups (folders) in LogicMonitor (LM) monitoring.

Returns: Array of website groups with: id, name, parentId, full path, description, number of websites, number of subgroups.

What are website groups: Organizational folders for website monitors (synthetic checks), similar to resource/device groups. Used to categorize monitored URLs/services by application, environment, or customer.

When to use:

  • Browse website organization before creating monitors

  • Find group IDs for website operations

  • Understand monitoring hierarchy

  • Navigate to specific website folders

Common organization patterns:

  • By application: "E-Commerce Site", "API Endpoints", "Marketing Pages"

  • By environment: "Production URLs", "Staging URLs", "DR Sites"

  • By location: "US Sites", "EU Sites", "APAC Sites"

  • By customer: "Customer A Sites", "Customer B Sites" (MSP)

  • By type: "Public Websites", "Internal Apps", "Third-Party APIs"

Use cases:

  • Organize monitors by application or service

  • Group customer-facing vs internal endpoints

  • Separate production vs non-production monitoring

  • Structure multi-region website monitoring

Workflow: Use this tool to browse hierarchy, then "list_websites" filtered by groupId to see monitors in specific folder.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_website_group" (details), "list_websites" (websites in group), "create_website_group" (create folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds valuable context: the return structure (array with id, name, parentId, etc.), handling of negative 'total' for incomplete results, and pagination 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.

Conciseness4/5

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

The description is well-structured with clear sections (Returns, What are website groups, When to use, etc.) and front-loaded purpose. Some sections are explanatory (e.g., 'What are website groups') which is helpful for context but could be trimmed for an AI agent. Overall efficient.

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

Completeness5/5

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

The description is comprehensive: it explains the concept, usage scenarios, organizational patterns, workflow, pagination pitfalls, and related tools. No output schema exists, so the description compensates by detailing the return array fields. Fully satisfies information needs.

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

Parameters3/5

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

Schema description coverage is 100% (all 5 parameters have descriptions). The description adds minimal extra meaning for parameters, only mentioning pagination and filter syntax. Baseline 3 is appropriate as the schema already fully documents parameters.

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

Purpose5/5

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

The description starts with 'List all website groups (folders) in LogicMonitor (LM) monitoring.' It clearly specifies the verb (list), resource (website groups), and scope (all). It distinguishes from siblings like get_website_group and list_websites by explaining its role in browsing hierarchy.

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

Usage Guidelines5/5

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

Explicit when-to-use scenarios are provided, e.g., 'Browse website organization before creating monitors', 'Find group IDs for website operations'. It also includes a workflow: 'Use this tool to browse hierarchy, then list_websites filtered by groupId to see monitors in specific folder.'

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

list_websitesA
Read-only

List all website monitors (synthetic checks) in LogicMonitor (LM) monitoring.

Returns: Array of website monitors with: id, name, type (webcheck/pingcheck), domain/URL, status, checkpoint locations, response time, availability percentage.

What are website monitors: Synthetic checks that test URL/service availability from multiple global locations. Like "ping from the internet" to verify your services are accessible.

When to use:

  • List all monitored URLs/services

  • Check website availability status

  • Find website IDs for other operations

  • Audit monitored endpoints

Monitor types:

  • webcheck: Full HTTP/HTTPS check (status code, response time, content validation, SSL cert)

  • pingcheck: Simple ICMP ping test (faster, simpler)

Common filter patterns:

  • By domain: filter:"domain~*example.com*"

  • By type: filter:"type:webcheck" or filter:"type:pingcheck"

  • By status: filter:"overallAlertStatus:critical" (find down sites)

  • By name: filter:"name~*production*"

Use cases: Monitor public websites, API endpoints, login pages, load balancer health checks, SaaS service availability.

Important: A negative "total" value in the response indicates incomplete results. Use pagination (size/offset parameters) or set autoPaginate: true to retrieve all items.

Related tools: "get_website" (details), "create_website" (add new), "generate_website_link" (get URL).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of results per page (default: 50, max: 1000).
offsetNoStarting offset for pagination (default: 0). Use this to skip a specific number of results.
autoPaginateNoAutomatically fetch all pages (default: false). When true, fetches all results across multiple pages. When false, returns only the requested page. Use false for large result sets to avoid long response times.
filterNoFilter expression using LogicMonitor query syntax. Examples: name:*prod*, displayName~*server*, id>100, hostStatus:normal. Available operators: : (equals), ~ (includes), !: (not equals), !~ (not includes), >: (greater than or equals), <: (less than or equals), > (greater than), < (less than). Multiple conditions: Use comma (,) for AND, use || for OR. Do NOT use &&.
fieldsNoComma-separated list of fields to include in response. Examples: "id,displayName,hostStatus" or use "*" for all fields. Omit this parameter to receive a curated set of commonly used fields.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations provide readOnlyHint: true, but the description adds significant behavioral context: it explains the return structure (array with id, name, type, domain, status, etc.), notes that a negative total indicates incomplete results, and details pagination behavior with autoPaginate. No contradictions.

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

Conciseness4/5

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

The description is well-structured with clear sections (Returns, What are website monitors, When to use, Monitor types, Common filter patterns, Use cases, Important, Related tools). It is front-loaded with the main purpose. While somewhat lengthy, each section adds distinct value.

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

Completeness5/5

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

Given no output schema and 5 parameters (100% schema coverage), the description thoroughly explains the return format, filter patterns, pagination, monitor types, and edge cases (negative total). It leaves no obvious gaps for an agent to understand the tool's usage.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond schema by providing common filter patterns with examples (e.g., filter:'domain\~\*example.com\*') and explaining pagination parameters in more context, making them more actionable.

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

Purpose5/5

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

The description clearly states 'List all website monitors (synthetic checks) in LogicMonitor (LM) monitoring.' It specifies the action (list) and resource (website monitors), and distinguishes from siblings like get_website, create_website, and generate_website_link via the 'Related tools' section.

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

Usage Guidelines4/5

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

The description includes a 'When to use' section with specific use cases (list all monitored URLs, check availability, etc.) and provides common filter patterns. Related tools are listed, but explicit 'when not to use' guidance is absent, though implied.

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. Dates show when Glama detected each change.

  1. 70 tool updatesv0.1.0
    • First observedgenerate_alert_link
    • First observedgenerate_dashboard_link
    • First observedgenerate_resource_link
    • First observedgenerate_website_link
    • First observedget_access_group
    • First observedget_alert
    • First observedget_alert_rule
    • First observedget_audit_log
    • First observedget_collector
    • First observedget_collector_group
    • First observedget_configsource
    • First observedget_dashboard
    • First observedget_dashboard_group
    • First observedget_datasource
    • First observedget_escalation_chain
    • First observedget_eventsource
    • First observedget_integration
    • First observedget_netscan
    • First observedget_opsnote
    • First observedget_recipient
    • First observedget_recipient_group
    • First observedget_report
    • First observedget_report_group
    • First observedget_resource
    • First observedget_resource_datasource
    • First observedget_resource_group
    • First observedget_resource_instance_data
    • First observedget_role
    • First observedget_sdt
    • First observedget_service
    • First observedget_service_group
    • First observedget_topology
    • First observedget_user
    • First observedget_website
    • First observedget_website_group
    • First observedlist_access_groups
    • First observedlist_alert_rules
    • First observedlist_alerts
    • First observedlist_api_tokens
    • First observedlist_audit_logs
    • First observedlist_collector_groups
    • First observedlist_collector_versions
    • First observedlist_collectors
    • First observedlist_configsources
    • First observedlist_dashboard_groups
    • First observedlist_dashboards
    • First observedlist_datasources
    • First observedlist_escalation_chains
    • First observedlist_eventsources
    • First observedlist_integrations
    • First observedlist_netscans
    • First observedlist_opsnotes
    • First observedlist_recipient_groups
    • First observedlist_recipients
    • First observedlist_report_groups
    • First observedlist_reports
    • First observedlist_resource_datasources
    • First observedlist_resource_group_properties
    • First observedlist_resource_groups
    • First observedlist_resource_instances
    • First observedlist_resource_properties
    • First observedlist_resources
    • First observedlist_roles
    • First observedlist_sdts
    • First observedlist_service_groups
    • First observedlist_services
    • First observedlist_users
    • First observedlist_website_checkpoints
    • First observedlist_website_groups
    • First observedlist_websites

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct entity or action (e.g., list_alerts vs get_alert vs generate_alert_link). Overlap is minimal and descriptions clearly distinguish them.

Naming Consistency5/5

All tools follow the verb_noun pattern consistently (e.g., list_resources, get_resource, generate_resource_link). The naming is predictable and easy to navigate.

Tool Count2/5

70 tools is excessive for the scope. While the server covers many features, it would benefit from consolidation (e.g., merging list/get pairs or using parameters). This volume may overwhelm an agent.

Completeness4/5

The tool surface covers most CRUD operations and key workflows for alerts, resources, websites, dashboards, etc. Minor gaps exist (e.g., no update_resource or update_dashboard), but core paths are complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    An MCP server that connects AI assistants to the NinjaOne remote monitoring and management platform via the REST API v2. It provides tools for device inventory, organization management, alert handling, maintenance scheduling, and automated job execution.
    22
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Domotz network monitoring and management. Enables AI assistants to query network devices, alerts, and topology via the Domotz API.
    2
    25
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for ServiceNow that provides over 60 pre-built tools for ITSM, ITOM, and App Dev operations, enabling AI agents to manage incidents, changes, users, service catalog, and projects through a unified interface.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/monitoringartist/logicmonitor-mcp-server'

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