Itential MCP Server
OfficialThe Itential MCP Server enables AI assistants to interact with the Itential Platform for network automation, orchestration, and management. Key capabilities include:
Platform Operations & Monitoring: Retrieve comprehensive health information (system resources, server status, applications, adapters); start, stop, restart, and list applications and adapters.
Workflow & Job Orchestration: List and trigger workflows, agents, and automations; expose workflows/agents as REST endpoints; monitor job status and detailed execution metrics; retrieve aggregate job and task metrics.
Device & Configuration Management: List devices; get, apply, and backup device configurations; run commands and command templates on multiple devices; manage logical device groups.
Golden Configuration: Create and manage hierarchical configuration trees, add nodes to existing trees.
Compliance Management: List compliance plans, run plans against devices, and retrieve detailed compliance reports.
Template Management: Create, update, describe, and render Jinja2/TextFSM templates for configuration generation and text processing.
Automation Studio: List and describe projects, templates, and command templates; run command templates and single commands.
Lifecycle Management: Define JSON Schema-based resource models; perform CRUD operations on resource instances; run lifecycle actions and track execution history.
Integrations: Create and list OpenAPI-based integration models and instances to interact with external systems.
Gateway Services: List available gateways and external services (Ansible, Python, OpenTofu); run services; export/import gateway configurations.
Inventory Management: Create, list, describe, delete inventories; add nodes in bulk to inventories.
Agent Session & Token Usage: List agent sessions, describe session details; break down token usage per inference turn, per session, or aggregated by agent.
Security & Deployment: Supports flexible authentication (basic auth, OAuth 2.0, JWT), TLS encryption, and RBAC; can be deployed via PyPI, source, or Docker with stdio or HTTP transport.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Itential MCP Servercheck platform health and recent job status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🔌 Itential - MCP Server
A Model Context Protocol (MCP) server that provides comprehensive tools for connecting LLMs to Itential Platform. Enable AI assistants to manage network automations, orchestrate workflows, monitor platform health, and perform advanced network operations.
🎯 Who This Is For
Platform Engineers
Manage infrastructure, monitor system health, configure devices, and orchestrate network operations through AI-powered automation.
Developers
Build automation workflows, integrate with external systems, manage application lifecycles, and extend platform capabilities.
Related MCP server: Packet Tracer MCP
📒 Key Features
Core Capabilities
56+ Automation Tools: Comprehensive toolkit across 10 tag categories for all network automation needs
Advanced Tool Selection: Filter and control available tools using flexible tagging system
Multiple Transport Methods: stdio and HTTP (Streamable HTTP, recommended) transports with optional TLS encryption; legacy SSE transport is also available but deprecated
Dynamic Tool Discovery: Automatically discovers and registers tools without code modifications
Flexible Authentication: Supports basic auth, OAuth 2.0, JWT, and role-based access for Itential Platform
Comprehensive Configuration: CLI parameters, environment variables, or configuration files
Role-Based Access: Tailored tool configurations for Platform Administrators, Network Engineers, and Developers
Network Automation & Device Management
Device Configuration: Apply configurations, backup device settings, and retrieve current configurations
Command Execution: Run single commands or command templates across multiple devices with rule validation
Device Groups: Create and manage logical device collections for streamlined operations
Compliance Management: Automated compliance plan execution and detailed reporting
Golden Configuration: Hierarchical template-based configuration management with version control
Workflow & Orchestration
Workflow Execution: Start workflows via API endpoints and monitor execution status
Job Management: Track workflow jobs with comprehensive status, metrics, and task details
Workflow Exposure: Convert workflows into REST API endpoints for external consumption
Template Management: Create, update, and execute Jinja2 and TextFSM templates
Performance Metrics: Detailed job and task execution metrics for workflow optimization
Platform Operations & Monitoring
Health Monitoring: Real-time platform health including system resources, applications, and adapters
Component Lifecycle: Start, stop, and restart applications and adapters with status monitoring
Integration Management: Create and manage OpenAPI-based integration models
Gateway Services: Execute external services (Ansible, Python scripts, OpenTofu) through Gateway Manager
Lifecycle & Resource Management
Resource Models: Define JSON Schema-based resource structures with lifecycle workflows
Instance Management: Full CRUD operations on resource instances with state tracking
Action Execution: Run lifecycle actions with comprehensive execution history
Data Validation: Schema-based validation for resource data and action parameters
🔍 Requirements
Python 3.10 or higher
Access to an Itential Platform Instance
For development -
uvandmake
Tested Python Versions
This project is automatically tested against the following Python versions:
Python 3.10
Python 3.11
Python 3.12
Python 3.13
🔧 Installation
The itential-mcp application can be installed using either PyPI or it can be
run directly from source.
PyPI Installation
To install it from PyPI, simply use pip:
pip install itential-mcpLocal Development
The repository can also be clone the repository to your local environment to
work with the MCP server. The project uses uv and make so both tools
would need to be installed and available in your environment.
The following commands can be used to get started.
git clone https://github.com/itential/itential-mcp
cd itential-mcp
make buildFor development, you can run the server directly using uv:
# Run with stdio transport (default)
uv run itential-mcp run
# Run with HTTP transport (Streamable HTTP, recommended for web integration)
uv run itential-mcp run --transport http --host 0.0.0.0 --port 8000
# Run with specific configuration
uv run itential-mcp run --include-tags "system,devices" --exclude-tags "experimental"Container Usage
Pull from GitHub Container Registry
Pull and run the latest release:
# Pull the latest image
docker pull ghcr.io/itential/itential-mcp:latest
# Run with HTTP transport (Streamable HTTP, recommended)
docker run -p 8000:8000 \
--env ITENTIAL_MCP_SERVER_TRANSPORT=http \
--env ITENTIAL_MCP_SERVER_HOST=0.0.0.0 \
--env ITENTIAL_MCP_SERVER_PORT=8000 \
--env ITENTIAL_MCP_PLATFORM_HOST=your-platform.example.com \
--env ITENTIAL_MCP_PLATFORM_USER=your-username \
--env ITENTIAL_MCP_PLATFORM_PASSWORD=your-password \
ghcr.io/itential/itential-mcp:latest
# Or with OAuth authentication
docker run -p 8000:8000 \
--env ITENTIAL_MCP_SERVER_TRANSPORT=http \
--env ITENTIAL_MCP_SERVER_HOST=0.0.0.0 \
--env ITENTIAL_MCP_SERVER_PORT=8000 \
--env ITENTIAL_MCP_PLATFORM_HOST=your-platform.example.com \
--env ITENTIAL_MCP_PLATFORM_CLIENT_ID=CLIENT_ID \
--env ITENTIAL_MCP_PLATFORM_CLIENT_SECRET=CLIENT_SECRET \
ghcr.io/itential/itential-mcp:latest
# Run with stdio transport (for MCP clients)
docker run -i \
--env ITENTIAL_MCP_PLATFORM_HOST=your-platform.example.com \
--env ITENTIAL_MCP_PLATFORM_USER=your-username \
--env ITENTIAL_MCP_PLATFORM_PASSWORD=your-password \
ghcr.io/itential/itential-mcp:latestBuild Container Image Locally
Build and run from source:
# Build the container image
make container
# Run the locally built container
docker run -p 8000:8000 \
--env ITENTIAL_MCP_SERVER_TRANSPORT=http \
--env ITENTIAL_MCP_SERVER_HOST=0.0.0.0 \
--env ITENTIAL_MCP_SERVER_PORT=8000 \
--env ITENTIAL_MCP_PLATFORM_HOST=your-platform.example.com \
--env ITENTIAL_MCP_PLATFORM_USER=your-username \
--env ITENTIAL_MCP_PLATFORM_PASSWORD=your-password \
itential-mcp:devel🚀 Quick Start
1. Install the Server
pip install itential-mcp2. Configure Platform Connection
Set your Itential Platform credentials:
export ITENTIAL_MCP_PLATFORM_HOST="your-platform.example.com"
export ITENTIAL_MCP_PLATFORM_USER="your-username"
export ITENTIAL_MCP_PLATFORM_PASSWORD="your-password"3. Start the Server
# Basic stdio transport (default)
itential-mcp run
# Or with HTTP transport (Streamable HTTP, recommended for web clients)
itential-mcp run --transport http --host 0.0.0.0 --port 80004. Configure Your MCP Client
Follow the integration guide to connect Claude, Continue.dev, or other MCP clients.
📝 Basic Usage
Start the MCP server with default settings (stdio transport):
itential-mcp runStart with HTTP transport (Streamable HTTP, recommended for web integration):
itential-mcp run --transport http --host 0.0.0.0 --port 8000Start with SSE transport (deprecated - legacy HTTP+SSE, prefer http):
itential-mcp run --transport sse --host 0.0.0.0 --port 8000General Options
Global options can be specified before or after the command name.
Option | Description | Default |
| Path to the config file | none |
Examples:
# Both of these work identically:
itential-mcp --config config.conf run
itential-mcp run --config config.confServer Options
Option | Description | Default |
| Transport protocol (stdio, sse, http; sse is deprecated, prefer http) | stdio |
| Host address to listen on | 127.0.0.1 |
| Port to listen on | 8000 |
| The HTTP path to use | /mcp |
| Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL, NONE) | NONE |
| Tags to include registered tools | none |
| Tags to exclude registered tools | experimental,beta |
Platform Configuration
Option | Description | Default |
| Itential Platform hostname | localhost |
| Platform port (0 = auto-detect) | 0 |
| Disable TLS for platform connection | false |
| Disable certificate verification | false |
| Connection timeout | 30 |
| Username for authentication | admin |
| Password for authentication | admin |
| OAuth client ID | none |
| OAuth client secret | none |
Environment Variables
All command line options can also be set using environment variables prefixed with ITENTIAL_MCP_SERVER_. For example:
export ITENTIAL_MCP_SERVER_TRANSPORT=http
export ITENTIAL_MCP_PLATFORM_HOST=platform.example.com
itential-mcp run # Will use the environment variablesSecurity Considerations
⚠️ Important Security Notice:
The MCP server reads configuration from environment variables, which means it must run in a trusted environment. In shared or multi-tenant environments, ensure that:
Environment Isolation: The server runs in isolated containers or dedicated environments where users cannot set arbitrary environment variables
Access Control: Only authorized administrators can set
ITENTIAL_MCP_*environment variablesDynamic Tool Configuration: Environment variables with the pattern
ITENTIAL_MCP_TOOL_*can define custom tool bindings. This is powerful but requires trust boundariesCredential Management: Never expose credentials in shared environments. Use secret management systems (Kubernetes Secrets, HashiCorp Vault, etc.)
Recommended Deployment Practices:
Use containerization (Docker, Kubernetes) to isolate environment variables
Implement least-privilege access controls
Rotate credentials regularly
Enable TLS and certificate verification in production
Use authentication (JWT, OAuth) for HTTP/SSE transports
For production deployments, see our Security Best Practices guide.
Configuration file
The server configuration can also be specified using a configuration file. The
configuration file can be used to pass in all the configuration parameters. To
use a configuration file, simply pass in the --config <path> command line
argument where <path> points to the configuration file to load.
The format and values for the configuration file are documented here
When configuration options are specified in multiple places the following precedence for determinting the value to be used will be honored from highest to lowest:
Environment variable
Command line option
Configuration file
Default value
🎛️ Tool Selection & Tagging
The Itential MCP server provides powerful tool filtering capabilities through a comprehensive tagging system. This allows you to customize which tools are available based on your specific needs and security requirements.
Tag-Based Filtering
Control tool availability using include and exclude tags:
# Include only health and device management tools
itential-mcp run --include-tags "health,configuration_manager"
# Exclude experimental and beta tools (default behavior)
itential-mcp run --exclude-tags "experimental,beta,lifecycle_manager"Available Tag Groups
Tag Group | Tool Count | Description | Use Case |
| 1 | Platform health and monitoring | Platform administrators |
| 15 | Device, compliance, and config management | Network engineers |
| 5 | Workflow and job management | Automation developers |
| 8 | Command templates, projects, templates | Network operators |
| 7 | Resource lifecycle and instance management | Product managers |
| 6 | Workflow execution metrics | Performance analysts |
| 4 | Adapter lifecycle management | Integration specialists |
| 4 | Application lifecycle management | Application owners |
| 3 | External service management | System integrators |
| 3 | External system integrations | API developers |
Role-Based Configurations
The following role-based configurations provide tailored tool access based on specific job functions and responsibilities:
Platform Administrator: System health monitoring, component management, platform operations
itential-mcp run --include-tags "health,adapters,applications,integrations"Key Tools: Platform health monitoring, adapter/application lifecycle, integration management
Network Engineer: Device management, configurations, compliance, network automation
itential-mcp run --include-tags "configuration_manager,automation_studio"Key Tools: Device configuration, compliance plans, command templates, golden config management
Automation Developer: Workflow building, performance analysis, platform extension
itential-mcp run --include-tags "operations_manager,workflow_engine,lifecycle_manager,gateway_manager"Key Tools: Workflow execution, performance metrics, resource lifecycle, external service integration
Platform Operator: Daily operations, job monitoring, report generation
itential-mcp run --include-tags "operations_manager,configuration_manager"Key Tools: Workflow execution, job monitoring, device operations, compliance reporting
📚 Documentation & Integration
Complete Tool Reference
The entire list of available tools can be found in the tools documentation along with detailed tag associations.
Configuration & Security
MCP Client Integration - Configure Claude, Continue.dev, and other MCP clients
TLS Configuration - Enable secure HTTPS connections with certificates
JWT Authentication - JWT token authentication setup
OAuth Authentication - OAuth 2.0 with multiple providers
Configuration Examples - Complete configuration file reference
Status Endpoints - Health monitoring for production deployments
Advanced Features
Tagging System - Advanced tool filtering and selection strategies
Workflow Execution - Execute and monitor Itential workflows
Custom Tools Development - Create and integrate custom MCP tools
Example Prompts
Claude Desktop Prompt - Optimized prompt for Claude integration
GPT Integration Prompt - Optimized prompt for GPT integration
🛠️ Adding new Tools
Adding a new tool is simple:
Create a new Python file in the
src/itential_mcp/tools/directory or add a function to an existing fileDefine an async function with a
Contextparameter annotation:
from fastmcp import Context
async def my_new_tool(ctx: Context) -> dict:
"""
Description of what the tool does
Args:
ctx (Context): The FastMCP Context object
Returns:
dict: The response data
Raises:
None
"""
# Get the platform client
client = ctx.request_context.lifespan_context.get("client")
# Make API requests
res = await client.get("/your/api/path")
# Return JSON-serializable results
return res.json()Tools are automatically discovered and registered when the server starts.
Running Tests
Run the test suite with:
make testFor test coverage information:
make coverageContributing
Contributions are welcome! Please read our Code of Conduct before contributing.
Fork the repository
Create a feature branch:
git checkout -b feature/my-featureCommit your changes:
git commit -am 'Add new feature'Push to the branch:
git push origin feature/my-featureSubmit a pull request
Before submitting:
Run
make premergeto ensure tests pass and code style is correctAdd documentation for new features
Add tests for new functionality
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Copyright (c) 2025 Itential, Inc
Available Tools
76 toolsadd_devices_to_groupAdd Devices to GroupAIdempotent
Add one or more devices to a device group
This tool will add one or more devices to a named device group defined in Itential Platform. The name argument specifies the name of the device group to add the list of devices to. The name must be a valid device group. The list of named device groups can be found using the get_device_groups tool.
The devices argument provides the list of devices to be added to the named device group. This operation is additive and idempotent: it merges the supplied devices into the group's existing device list rather than replacing it, and devices already present in the group are not duplicated. Passing an empty list or None is a no-op that leaves the group's devices unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the device group to add devices to | |
| devices | No | List of devices to add to the group |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Message that provides the status of the operation |
| message | Yes | Short description of the status of the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include idempotentHint=true and destructiveHint=false, but the description goes further by detailing the merge semantics, no duplicate behavior, and the no-op for empty/None lists. This gives agents confidence in side effects beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loaded with the purpose, and every sentence contributes essential information. It is concise yet thorough, covering purpose, key parameter behavior, and edge cases without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no nesting) and the presence of an output schema, the description fully explains the operation's behavior and prerequisites. It covers error-prone details like empty lists and idempotency, 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.
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 meaningful semantics: 'name' must be a valid group (with pointer to get_device_groups), and 'devices' is described as additive, idempotent, and no-op for empty lists. These nuances are not in the schema, elevating the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Add one or more devices to a device group.' It clearly distinguishes this from siblings like remove_devices_from_group and get_device_groups, and the title reinforces the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool: to add devices to a named group. It instructs users to verify the group name via get_device_groups and explains the additive/idempotent behavior, implying this is the right choice for augmenting a group without replacing it. No explicit alternative exclusions, but strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_golden_config_nodeAdd Golden Config NodeA
Add a new node to an existing Golden Configuration tree.
Nodes in Golden Configuration trees represent configuration sections or components that can be organized hierarchically. Each node can have an associated configuration template and belongs to a specific version of the tree structure.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the new node to add | |
| path | No | The parent path | base |
| version | No | The version of the tree to add the node to | initial |
| template | No | The configuration template associated with this node | |
| tree_name | Yes | The name of the Golden Configuration tree to create |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | Success message confirming node addition |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. The description adds context about what nodes represent, but does not disclose details like error handling, idempotency, or side effects beyond the annotation-provided safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the primary action, the second adds valuable context about node semantics. It is front-loaded with the action and avoids unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, output schema present), the description adequately covers the domain by explaining nodes in Golden Configuration trees. It does not need to explain return values since an output schema exists, and the parameter schema covers field-level details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already describes all five parameters. The description adds general context about nodes but does not provide additional parameter-specific meaning, such as how 'path' relates to hierarchy or how 'version' determines tree structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a new node to an existing Golden Configuration tree,' which is a specific verb+resource action. This distinguishes it from sibling tools like create_golden_config_tree, which creates the entire tree rather than adding nodes to an existing one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need to add a configuration section or component to an existing tree, and the context about hierarchical organization and versioning provides clear usage context. It does not explicitly name alternatives or exclusions, but the sibling tool list makes the distinction clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_nodes_to_inventoryAdd Nodes to InventoryA
Add nodes in bulk to an existing inventory on Itential Platform.
Adds one or more nodes with full attribute details to an inventory. Each node requires a name and attributes dictionary containing connection and platform details. Tags can be optionally provided per node for classification.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | List of node objects to add to the inventory. Each node must include 'name' (str) and 'attributes' (dict with keys like itential_host, itential_platform, cluster_id, itential_user, itential_password). Optionally include 'tags' (list of strings). | |
| inventory_name | Yes | The name of the inventory to add nodes to. Use `get_inventories` to see available inventories. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Message that provides the status of the operation |
| message | Yes | Short description of the status of the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds minimal behavioral context. It does not disclose potential side effects, such as whether duplicate nodes are rejected, whether the operation is atomic, or whether bulk additions have performance implications. The phrase 'in bulk' is the only extra behavioral hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action. It uses two short paragraphs without redundancy, though the second paragraph partially restates schema content. Overall it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two parameters and an output schema, the description covers the core functionality but omits information about error handling, partial failures, or idempotency in bulk operations. Given the availability of an output schema, the description is adequate but not comprehensive for edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema covers all parameters, the description enriches the meaning by explaining that each node requires a name and attributes dictionary with connection/platform details, and notes that tags are optional for classification. This goes beyond the schema's descriptive text and helps the agent construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Add nodes in bulk to an existing inventory.' It distinguishes from siblings like create_inventory or get_inventories by focusing on adding nodes to an existing inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for adding nodes to an existing inventory, but it does not explicitly state when to prefer it over alternatives or exclude cases (e.g., creating a new inventory). The schema hints at using get_inventories, but the description itself provides no explicit usage guidance or alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_device_configurationApply Device ConfigurationADestructive
Apply configuration commands to a network device through Itential Platform.
Configuration deployment enables automated provisioning and updates of network device settings, supporting configuration management and infrastructure automation.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | The configuration to apply to the device | |
| device | Yes | The name of the device to apply the configuration to |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only, and the description aligns with that without adding extra context about side effects, prerequisites, or error behavior. It does not contradict the annotations, but also does not disclose anything beyond the schema/annotations, so the additional value is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, with the core action in the first sentence. The second sentence adds context about automated provisioning but is somewhat generic; however, there is no wasted or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema and annotations indicating destructive behavior, the description provides enough context to understand the tool's purpose and effect. It does not explain prerequisites or return values, but those are covered by the schema and output schema, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both 'device' and 'config', so the schema carries the parameter documentation burden. The description adds generic context about applying configuration but does not provide additional detail on formats, constraints, or examples beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Apply configuration commands to a network device' with a specific verb and resource, distinguishing it from sibling tools like run_command or get_device_configuration. The title reinforces the action, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for automated provisioning and configuration updates, but it does not explicitly contrast with sibling tools like run_command or state when not to use this tool. No exclusion criteria or alternative tool references are provided, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup_device_configurationBackup Device ConfigurationA
Create a backup of a device configuration in Itential Platform.
Configuration backups provide recovery points and change tracking for network devices, enabling rollback capabilities and configuration management workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the device to backup | |
| notes | No | Notes to attach to the backup | |
| description | No | Short description to attach to the backup |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique identifier for the backup |
| status | Yes | Status of the backup operation |
| message | Yes | Descriptive message about the operation status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description is not required to restate the write nature. It does add value by describing the purpose of backups (recovery points, change tracking, rollback), but it doesn't disclose additional behavioral details like whether an existing backup is overwritten or if special permissions are needed. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action verb and resource. The second sentence provides useful context about the value of backups without redundancy. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple parameter set (3 params, all documented), an output schema, and annotations, the description covers the essential purpose and value proposition. It does not explain return values since an output schema exists, and the description is sufficient for an agent to understand core behavior. Minor gap: no sibling differentiation, but that is already considered in usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (name, notes, description), so the schema already provides full parameter meaning. The description does not add any additional parameter-level detail, meeting the baseline for high schema coverage without going beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a backup of a device configuration', which is a specific verb+resource that clearly states the tool's function. This distinguishes it from sibling tools like get_device_configuration and apply_device_configuration by naming the backup action explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that backups 'provide recovery points and change tracking... enabling rollback capabilities', which gives clear context for when this tool should be used. However, it does not explicitly mention alternatives or exclusions, such as when to prefer get_device_configuration or apply_device_configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_command_templateCreate Command TemplateA
Create a new command template in Itential Platform.
Creates a new command template with the specified name, commands, and validation rules. Templates can be created in the global space or within a specific project.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Operating system type (default: empty string) | |
| name | Yes | Name for the command template | |
| project | No | Project name to create the template in (None for global templates) | |
| commands | Yes | List of commands with their validation rules | |
| pass_rule | No | Pass rule configuration (True=all must pass, False=one must pass) | |
| description | No | Optional description for the template | |
| ignore_warnings | No | Whether to ignore warnings during execution |
Output Schema
| Name | Required | Description |
|---|---|---|
| ops | Yes | List of created template operations |
| result | Yes | Operation result with success status |
| insertedIds | Yes | Mapping of inserted template IDs |
| insertedCount | Yes | Number of templates inserted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the write nature is expected. The description adds useful context about creating templates in global or project space, and mentions the key inputs (name, commands, validation rules). It does not discuss failure modes or duplicate handling, but that is not critical given the annotation coverage and the tool's straightforward creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and every sentence adds meaningful context. There is no filler or redundant repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, a full schema with 100% description coverage, an output schema, and annotations that clarify mutability and destructive nature, the description is sufficient. It communicates the core creation action, the primary inputs, and the deployment scope without needing to detail return values or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes further by semantically linking 'name, commands, and validation rules' to the creation intent and explicitly mentioning 'global space or within a specific project,' which enriches the meaning of the project parameter beyond its schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: 'Create a new command template in Itential Platform' with 'specified name, commands, and validation rules.' It also distinguishes scope ('global space or within a specific project'), differentiating it from sibling tools like describe_command_template or run_command_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for creating new templates and mentions the key context of global vs. project scoping. It does not explicitly contrast with update_command_template or run_command_template, but the 'new' qualifier and resource type make the primary use case unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_device_groupCreate Device GroupA
Create a new device group on Itential Platform.
Device groups enable logical organization of network devices for streamlined management, configuration deployment, and automation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the device group to create | |
| devices | No | List of devices to add to the group | |
| description | No | Short description of the device group |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique identifier for the created device group |
| name | Yes | Name of the device group |
| status | Yes | Current status of the device group |
| message | Yes | Status message describing the create operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, matching the 'Create' action. The description adds context about device group purpose but does not disclose extra behavioral details such as idempotency, name uniqueness, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with the core action front-loaded and a brief value proposition. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, a valid output schema, and clear sibling context (add_devices_to_group, get_device_groups), the description is sufficient. It could have mentioned whether initial devices can be provided or if the group is created empty, but the schema already covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the description need not repeat them. It adds no extra meaning beyond the schema, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Create a new device group on Itential Platform' with a specific verb and resource, clearly distinguishing it from sibling tools like get_device_groups and add_devices_to_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'Create' and the context of organizing devices, but there is no explicit guidance on when to use this instead of add_devices_to_group for populating a group after creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_golden_config_treeCreate Golden Config TreeA
Create a new Golden Configuration tree on Itential Platform.
Golden Configuration trees define hierarchical configuration templates for network devices. They support variable substitution and version management to provide consistent, reusable configuration structures across device types.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the Golden Configuration tree to create | |
| template | No | The configuration template associated with the base node | |
| variables | No | The variables associated with this Golden Config tree | |
| device_type | Yes | The configuration device type associated with this tree |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | Name of the created Golden Configuration tree |
| device_type | Yes | The device type this tree is designed for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) but not destructive (destructiveHint=false). The description adds useful context about the resource being created (hierarchical templates, variable substitution, version management), but does not disclose other behavioral traits such as validation, idempotency, or what happens on duplicate names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. The first sentence states the primary action clearly, and the second provides necessary background without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and high-level capabilities. Given that an output schema exists and annotations are present, the description is sufficiently complete for a create operation, though it could mention related tools for post-creation steps (e.g., adding nodes) for even richer context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the description's job is light. The description does mention variable substitution, which relates to the 'variables' parameter, but it does not add specific meaning beyond the schema's existing per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Create a new Golden Configuration tree'. It also explains what Golden Configuration trees are, which distinguishes this tool from sibling create tools for other resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining the purpose and context, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or preconditions. Sibling tools like add_golden_config_node and get_golden_config_trees are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_integration_modelCreate Integration ModelA
Create a new integration model on Itential Platform from an OpenAPI specification.
Integration models enable Itential Platform to interact with external systems by defining their API structure and capabilities. The model must be a valid OpenAPI specification document.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | OpenAPI specification |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Operation status (OK or CREATED). Casing is normalized on input. |
| message | Yes | Descriptive message about the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with a create operation. The description adds that the model must be a valid OpenAPI specification, implying validation, but does not disclose error handling, potential overwrites, or response details. Given annotations cover the basic safety profile, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary action in the first sentence. The second sentence provides essential context and a constraint without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple one-parameter input and an output schema, so the description's focus on purpose and validity is largely sufficient. However, it lacks mention of what happens after creation (e.g., how to interact with the model, possible validation failures), though the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the single 'model' parameter as 'OpenAPI specification' with 100% coverage. The description reinforces this by stating the model must be a valid OpenAPI specification, but adds no additional parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new integration model on Itential Platform from an OpenAPI specification,' identifying both the action and the resource. This differentiates it from sibling tools like get_integration_models and get_integrations, which are read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the purpose of integration models but does not explicitly state when to use this tool versus alternatives, such as when to use create_command_template or update_integration_model. It implies that any new integration model should be created here, but lacks exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_inventoryCreate InventoryA
Create a new inventory and optionally populate it with devices on Itential Platform.
Inventories enable logical organization of network devices for streamlined management, configuration deployment, compliance checking, and automation workflows. Devices can be added during creation or later.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the inventory to create | |
| groups | Yes | List of authorization group names to assign to the inventory. At least one group is required. | |
| devices | No | List of device names to include in the inventory. Use `get_devices` to see available devices. | |
| description | No | Short description of the inventory |
Output Schema
| Name | Required | Description |
|---|---|---|
| _id | Yes | Unique identifier for the created inventory |
| name | Yes | Name of the inventory |
| message | No | Status message describing the create operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows it's a non-destructive write. The description adds that devices can be added during creation or later, which gives context about optional population but doesn't disclose any additional side effects, permissions, or failure modes. This is minimal added value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the core action in the first sentence. The second sentence adds useful context about inventory purpose, and the third clarifies the optional device population without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with a well-defined 4-parameter schema and output schema, the description adequately covers the resource's purpose and optional behavior. It doesn't need to explain return values because an output schema exists, and required parameter details are already in the schema. The only gap is not mentioning that groups are required, but the schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have schema descriptions, so the schema itself covers 100% of the parameter semantics. The description mentions that devices can be added later, but this does not add new detail to the devices parameter—it only restates that the field is optional. There is no additional parameter guidance in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a new inventory and optionally populate it with devices on Itential Platform,' which clearly states the verb, resource, and optional action. This distinguishes it from sibling tools like describe_inventory, delete_inventory, and get_inventories. The supporting sentence about logical organization reinforces the resource's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides background on inventories but does not explicitly state when to choose this tool over alternatives. It implies usage by describing what inventories enable, and notes that devices can be added later, hinting at add_nodes_to_inventory without naming it. No explicit when-not or alternatives are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_resourceCreate ResourceA
Create a new Lifecycle Manager resource model on Itential Platform.
Resource models define the structure, validation rules, and lifecycle workflows for network services and infrastructure components. They serve as templates for creating and managing resource instances.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the resource model to describe | |
| schema | Yes | JSON Schema representation of this resource | |
| description | No | Short description of this resource |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-read-only, non-destructive mutation. The description adds that resource models serve as templates for instances but does not disclose additional behavioral traits such as uniqueness constraints, permissions, or side effects. Given the annotations cover the safety profile, the description's minimal extra transparency is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first clearly states the action, and the second provides useful context about resource models. There is no redundant filler, and the structure is front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with an output schema, this description gives sufficient context about the resource model's role as a template. It does not explain return values, but the output schema already covers that. It could mention prerequisites or uniqueness, but the current description is adequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (name, schema, description). The description provides conceptual context about what a resource model is, which indirectly helps understand the schema parameter, but it does not add parameter-specific details beyond the schema. Baseline 3 applies because the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new Lifecycle Manager resource model' with a specific verb and resource. It distinguishes from sibling tools like create_integration_model and create_template by explicitly targeting 'resource model'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that resource models define structure, validation rules, and lifecycle workflows for network services and infrastructure components, providing clear context on the tool's intended use. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_templateCreate TemplateB
Create a new template in Automation Studio.
Creates a new template with the specified name, type, group, and optional content including command, template text, and sample data. Templates are used for text processing, configuration generation, and data parsing within automation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Sample data used to test the template | |
| name | Yes | The name of the template to create | |
| group | Yes | The gorup this template belongs to | |
| command | No | The CLI command to be run on the target device | |
| project | No | The name of the project where this template should be created. The available projects can be found using get_projects | |
| template | No | The template text uesd to generate the output | |
| template_type | Yes | Type of template to create |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Sample data used to test the template |
| name | Yes | Template name |
| type | Yes | Template type (textfsm or jinja2) |
| group | Yes | The group the template is currently part of |
| command | Yes | The command send to the device to generate the source text |
| template | Yes | The template used to generate the final output |
| description | No | Template description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states a mutation operation ('Creates'), which is consistent with readOnlyHint=false. Yet it adds little beyond the annotations: no mention of potential side effects, permission requirements, idempotency, or behavior on duplicate names. The description relies heavily on the schema and annotations to convey behavioral details, which are sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear first sentence purpose followed by a brief elaboration. There is no superfluous content, and the structure is easy to scan. It could be slightly more structured (e.g., bullet points) but remains appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter creation tool with full schema coverage and an output schema, the description covers the core purpose and typical use cases. However, it omits any mention of dependencies like the 'project' parameter or how to discover available projects (which the schema partly addresses). The description is adequate but lacks contextual details that would fully prepare an agent for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description summarizes the key parameters (name, type, group, command, template text, sample data) but does not add new meaning or clarify ambiguities (e.g., the 'data' field's role). It meets the baseline but does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new template in Automation Studio.' It specifies the main attributes (name, type, group, optional content) and the general use cases. However, it does not explicitly distinguish this tool from the closely named sibling 'create_command_template', so it falls short of fully differentiating from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating that templates are used for text processing, configuration generation, and data parsing within automation workflows. However, it provides no explicit guidance on when to choose this tool over alternatives like 'create_command_template', nor does it mention any prerequisites or situations where this tool is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_inventoryDelete InventoryADestructive
Delete an inventory from Itential Platform.
Permanently removes an inventory and all its device associations. The devices themselves are not affected; only the inventory grouping is deleted. This operation cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the inventory to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Status of the delete operation |
| message | Yes | Short description of the status of the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it states the operation permanently removes the inventory and all device associations, clarifies that devices themselves are not affected, and warns that the operation cannot be undone. This aligns with and expands upon the destructiveHint annotation, providing users with a clear understanding of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary action, followed by essential caveats. Every sentence adds value: scope, side effects on devices, and irreversibility. No redundant or extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, a clear schema, and relevant annotations, the description fully covers the necessary context. It explains the operation's scope, side effects, and irreversibility, which is sufficient for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with a clear description for the single 'name' parameter. The tool description does not add any additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete an inventory') and the resource ('inventory from Itential Platform'), and it distinguishes itself from sibling tools like create_inventory and describe_inventory. It also clarifies the scope of deletion (inventory grouping and device associations) versus what remains unaffected (devices).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for permanent deletion, providing context that it cannot be undone. However, it does not explicitly mention alternatives or when not to use it, such as suggesting describe_inventory for informational purposes. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_command_templateDescribe Command TemplateARead-onlyIdempotent
Get detailed information about a specific command template.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the command template to describe | |
| project | No | The name of the project to get the command template from |
Output Schema
| Name | Required | Description |
|---|---|---|
| template | Yes | Detailed command template information including commands and rules |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations (readOnlyHint=true, idempotentHint=true) and the verb 'get' implies read-only behavior. However, it adds no extra context beyond what annotations already provide—no mention of error cases, return value details, or special conditions. Given the annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of nine words, front-loaded with the action and resource. Every word earns its place with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple signature (2 params, no nested objects) and an output schema that defines return values. The description, while minimal, is enough for a basic read-only describe operation. It does not explain differences from analogous 'describe_template' or 'get_command_templates', but the output schema and annotations cover most necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'name' and 'project' having clear descriptions. The tool description itself does not add any additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Get detailed information about a specific command template.' It clearly distinguishes from siblings like 'get_command_templates' (listing) and 'create/update/run_command_template' by emphasizing 'specific' and 'detailed information.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. There is no mention of using it for one template versus 'get_command_templates' for listing, nor any exclusions or prerequisites. The intended usage is only implied by the word 'specific.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_compliance_reportDescribe Compliance ReportARead-onlyIdempotent
Retrieve detailed compliance report results from Itential Platform.
Compliance reports contain the results of executing compliance plans against network devices, showing configuration validation outcomes, rule violations, and compliance status for each checked device.
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | The ID of the report to describe |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Compliance report details containing validation results, device compliance status, rule violations, and configuration analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description isn't responsible for safety disclosure. It adds valuable context about what compliance reports contain (validation outcomes, rule violations, status per device), which goes beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first states the core function, the second explains the underlying concept. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present, annotations covering read-only and idempotent behavior), the description is complete. It explains what the report contains and retrieves, sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter (report_id) is clearly defined as 'The ID of the report to describe.' The description adds no further parameter-level detail, but the schema sufficiently covers semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Retrieve') and resource ('detailed compliance report results'). It distinguishes itself from siblings like run_compliance_plan (execution) and get_compliance_plans (listing) by focusing on describing a specific report's results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context—retrieving results after running compliance plans—but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions. Sibling names help, but the description itself lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_instanceDescribe InstanceBRead-onlyIdempotent
Get details about an instance of a Lifecycle Manager resource
Gets the resource instance that is specified in the instance_name argument and returns the instance details. This function will return an error if the instance does not exist
| Name | Required | Description | Default |
|---|---|---|---|
| instance_name | No | The instance name | |
| resource_name | Yes | The Lifecycle Manager resource name |
Output Schema
| Name | Required | Description |
|---|---|---|
| description | No | Short description of the instance |
| last_action | Yes | Information about the last action performed on the instance |
| instance_data | No | Data about the instance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only behavior is known. The description adds the error behavior when the instance does not exist, which is useful beyond annotations, but it does not disclose other potential behaviors such as authorization requirements or limits. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, but the first sentence is largely redundant with the title and the second sentence repeats 'gets' and 'instance details'. It could be tightened without losing meaning, but there is minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers the essential behavior for a simple read-only lookup. It mentions the error case and that details are returned. However, it does not explicitly clarify the role of resource_name, which is important context but not critical given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (instance_name and resource_name). The description adds no meaningful semantics beyond referring to the instance_name argument; it does not clarify resource_name or any parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets details about an instance of a Lifecycle Manager resource, using a specific verb and identifying the resource type. However, it does not explicitly differentiate itself from sibling tools like describe_resource or describe_session, which serve similar 'describe' purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as describe_resource or get_instances. The description only mentions an error condition when the instance does not exist, which is not usage guidance. It lacks context on prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_inventoryDescribe InventoryARead-onlyIdempotent
Get detailed information about a specific inventory from Itential Platform.
Retrieves comprehensive details about an inventory including its description, groups, actions, tags, and the list of nodes (devices) with their attributes. The inventory is identified by its name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the inventory to describe |
Output Schema
| Name | Required | Description |
|---|---|---|
| _id | Yes | Unique identifier for the inventory |
| name | Yes | Inventory name |
| tags | No | Tags associated with the inventory |
| nodes | No | List of node objects in the inventory, each containing name, attributes (such as itential_host, itential_platform, cluster_id), and optional tags |
| groups | No | List of authorization group names associated with the inventory |
| actions | No | List of actions configured for the inventory |
| description | No | Inventory description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds valuable context about what data is returned (groups, actions, tags, node attributes), which goes beyond the structured annotations, though it does not discuss errors or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and resource, and every word adds value. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only tool with a fully documented parameter, an output schema present, and annotations covering safety, the description sufficiently explains purpose, input, and returned content. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear description of the 'name' parameter. The description's statement that inventory is identified by its name adds minimal extra meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a specific inventory and enumerates what that includes: description, groups, actions, tags, and nodes with attributes. This distinguishes it from list-oriented siblings like get_inventories, and the resource (inventory) is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details for a single inventory, identified by name. It does not explicitly mention alternatives or when not to use it, but the context 'specific inventory' and the required name parameter provide clear situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_jobDescribe JobARead-onlyIdempotent
Get detailed information about a specific job from Itential Platform.
Jobs are created automatically when workflows are executed and contain comprehensive information about the workflow execution including status, tasks, metrics, and results.
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | The ID used to retrieve the job |
Output Schema
| Name | Required | Description |
|---|---|---|
| _id | Yes | Unique job identifier |
| name | Yes | Job name |
| type | Yes | Job type (automation, resource:action, resource:compliance) |
| tasks | Yes | Complete set of tasks executed |
| status | Yes | Current job status (error, complete, running, canceled, incomplete, paused) |
| metrics | Yes | Job execution metrics including start time, end time, and account |
| updated | Yes | Last update timestamp |
| variables | No | Job variable outputs produced during workflow execution |
| description | No | Job description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context about job lifecycle and that jobs contain 'status, tasks, metrics, and results', which is beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: the first is direct and action-oriented, the second adds necessary context about job creation and content. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only describe tool with an output schema and annotations, the description is complete enough. It clarifies what a job is, when it exists, and what details are returned. It doesn't cover error cases, but those are less critical given the readOnlyHint and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter object_id is described in the schema as 'The ID used to retrieve the job'. The tool description adds no extra parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get detailed information about a specific job from Itential Platform'—a clear verb+resource pairing. Stating 'specific job' distinguishes it from list-style siblings like get_jobs, and the resource type (job) differentiates it from other describe_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains that jobs are created automatically when workflows execute, providing context for when this tool is relevant. It implies the need for an existing job ID and a one-record lookup, but does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_projectDescribe ProjectARead-onlyIdempotent
Get detailed information about a specific Automation Studio project.
Retrieves comprehensive project information including all components (workflows, templates, and other artifacts) contained within the project along with their metadata and organization structure.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the project to describe |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique project identifier |
| name | Yes | Project name |
| components | Yes | List of components contained in the project |
| description | No | Project description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not required to restate safety. It adds value by disclosing that the tool returns comprehensive project information including components, metadata, and organization structure, which is behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose. The second sentence elaborates on the return content without fluff. Every sentence earns its place, and it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only tool with one parameter, high schema coverage, and an output schema present. The description covers the tool's scope (project details and components) adequately for an agent to select and invoke it correctly. No significant information gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single 'name' parameter is documented). The description adds no additional semantic detail about the parameter, so the baseline of 3 is appropriate. It does not mention parameter behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get detailed information about a specific Automation Studio project' with a clear verb and resource. It also distinguishes itself from sibling tools like get_projects by specifying that it retrieves project components and metadata, not just a project listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: when you need detailed information about a specific project. However, it does not explicitly state when to use this tool versus alternatives like describe_template or get_projects, nor does it provide exclusions for scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_resourceDescribe ResourceBRead-onlyIdempotent
Get detailed information about a Lifecycle Manager resource model.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the resource model to describe |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the resource model |
| actions | No | List of elements where each element represents an action that can be invoked for a resource model instance |
| description | No | Short description of the resource model |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds no additional behavioral context (e.g., return format, pagination, auth requirements) beyond restating that it provides detailed information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, conveying the essential purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter schema and an output schema, the description is adequate. It could benefit from explicitly distinguishing against sibling describe tools, but overall it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'name' that has a clear description. The tool description adds no further parameter semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get detailed information' and identifies the resource as 'Lifecycle Manager resource model,' which is clear. However, it does not differentiate from sibling describe_* tools like describe_instance or describe_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as describe_instance or get_resources. There are no exclusions or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_sessionDescribe SessionARead-onlyIdempotent
Get detailed information about a specific agent session.
Returns the full session record including all event messages emitted during agent execution and the final text output produced by the agent.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to retrieve full details for |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | Final text output produced by the agent; extracted from the inference-succeeded event. None if the session has not completed or produced no text output. |
| status | Yes | Session status (RUNNING, COMPLETE, FAILED) |
| end_time | No | ISO 8601 end timestamp; None if the session is still RUNNING |
| messages | No | Ordered list of session event messages captured during agent execution |
| agent_name | No | Name of the agent that ran |
| session_id | Yes | Unique session identifier |
| started_at | No | ISO 8601 start timestamp |
| duration_ms | No | Total session duration in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so no contradiction. The description adds transparently that the full session record includes all event messages and final text output, providing useful behavioral context about what can be expected from the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently composed in two sentences, front-loaded with the primary purpose ('Get detailed information') followed by a concise elaboration of what is returned. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with a single parameter, an output schema present, and annotations covering safety behavior, the description provides all necessary context. It explains what kind of information is retrieved, making it complete for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with a clear description for session_id, and the tool description does not need to compensate. It does not add additional semantics beyond the schema's own description, so a baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' targeting 'agent session' and provides distinguishing detail about returning the full session record including all event messages and final text output. This clearly separates it from sibling tools like 'describe_session_token_usage' which focuses on token usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving detailed session information but does not explicitly state when to use it over alternatives or mention any exclusions. Sibling tools like 'get_sessions' and 'describe_session_token_usage' are not referenced, leaving usage context only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_session_token_usageDescribe Session Token UsageARead-onlyIdempotent
Break down a single agent session's token usage per inference turn.
Fetches the session's raw event messages and filters to inference turns (inference-succeeded, inference-failed), returning one entry per turn along with an aggregated summary. Non-inference events (tool calls, status transitions) are excluded from the breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to break down per inference turn |
Output Schema
| Name | Required | Description |
|---|---|---|
| turns | No | Ordered list of per-turn usage details |
| summary | Yes | Aggregated totals across all inference turns in the session |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses precisely how the tool works: it fetches raw event messages, filters to inference-succeeded/failed turns, returns one entry per turn plus a summary, and excludes non-inference events. This gives the agent a robust mental model of the tool's behavior and output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences. The first sentence is a clear, front-loaded summary; the following sentences add necessary behavioral detail without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, single-parameter tool with an output schema, the description explains the essential behavior, filtering logic, and return shape. It is complete enough for an agent to select and invoke the tool correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `session_id` is fully described in the schema, and the tool description reinforces it ('single agent session'). With 100% schema coverage, the description adds little beyond the schema, which is acceptable but does not elevate the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Break down') and a clearly defined resource ('a single agent session's token usage per inference turn'), immediately establishing what the tool does and distinguishing it from broader token-usage tools. Even without naming siblings, the scope is unambiguous and narrowly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence clearly contextualizes when to use this tool: when you need a per-inference-turn token breakdown for a single session. However, it does not explicitly mention alternative tools or exclusions, so it stops short of the highest level of guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_templateDescribe TemplateARead-onlyIdempotent
Get detailed information about a specific template from Automation Studio.
Retrieves comprehensive template information including name, description, type, group, command, template content, and sample data. Templates are used for text processing, configuration generation, and data parsing within automation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the template to describe | |
| project | No | The name of the project the template resides in |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Sample data used to test the template |
| name | Yes | Template name |
| type | Yes | Template type (textfsm or jinja2) |
| group | Yes | The group the template is currently part of |
| command | Yes | The command send to the device to generate the source text |
| template | Yes | The template used to generate the final output |
| description | No | Template description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent hints, so the bar is lower. The description adds value by enumerating the specific information retrieved (name, description, type, etc.), giving the agent an expectation of the output content. It does not mention rate limits or authentication, but these are not expected for a simple describe operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded, and free of fluff. The first sentence states the purpose, and the second paragraph quickly details what information is retrieved and the general use case. Every sentence contributes useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only describe tool with a full output schema and high schema coverage, the description is sufficient. It conveys the tool's domain and content but does not elaborate on exclusions or equivalent alternatives (e.g., describe_command_template), which would improve completeness in a larger toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the description adds little beyond the schema. It does not elaborate on the 'project' parameter or how it interacts with 'name' beyond what the schema states. The description's phrase 'specific template' aligns with 'name' but offers no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get detailed information about a specific template from Automation Studio.' It specifies the resource (template) and the action (describe), and lists the exact fields returned (name, description, type, group, command, content, sample data), distinguishing it from sibling tools like render_template or describe_command_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed template information is needed, but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The sentence about template usage provides domain context but not direct 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.
export_gateway_configurationExport Gateway ConfigurationA
Export a gateway cluster's full DB configuration as a DSL document
The gateway must be connected and active. The returned document can be passed unchanged as the content of a future import_gateway_configuration call. If the export contains secrets or user credentials, this may prompt for explicit confirmation via MCP elicitation before returning.
| Name | Required | Description | Default |
|---|---|---|---|
| cluster_id | Yes | The cluster ID of the target gateway, e.g. 'cluster_1' |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotations: readOnlyHint is set to false, yet the tool is described as an export operation, which is inherently read-only. This is a serious inconsistency, and the description doesn't clarify any write side effects. The mention of possible MCP elicitation for secrets adds some context, but the contradiction warrants a score of 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose in the first sentence and additional context in the second. Every sentence adds valuable information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisites (connected and active), the output's intended use (passable to import), and potential confirmation behavior for secrets. With an output schema present and good annotations (aside from the contradiction), this is nearly complete, but the contradiction with readOnlyHint prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single parameter, cluster_id, with a clear description and example. The tool description does not add any additional parameter semantics beyond the schema, so it neither improves nor degrades the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a gateway cluster's full DB configuration as a DSL document, with a specific verb (export), resource (gateway cluster's DB configuration), and output format (DSL document). It distinguishes itself from siblings by explicitly mentioning the counterpart import_gateway_configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: the gateway must be connected and active, and the resulting document can be used directly in a future import call. It implies when to use this tool (when exporting configuration) and hints at the relationship with import, though it doesn't explicitly state alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expose_agentExpose AgentA
Expose an agent as an API endpoint trigger.
Creates an automation wrapping the specified agent and an endpoint trigger so the agent can be started via trigger_automation using the assigned route_name.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | UUID of the agent to expose (agent_id from get_agents) | |
| route_name | No | API route name; defaults to automation_name with spaces replaced by underscores | |
| endpoint_name | No | Name for the trigger endpoint | |
| automation_name | Yes | Name for the automation wrapping the agent | |
| endpoint_schema | No | JSON Schema for endpoint input; defaults to open schema | |
| endpoint_description | No | Description for the endpoint trigger |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | The status of the expose operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations (which only set readOnlyHint=false, openWorldHint=false, destructiveHint=false) by detailing the concrete behavior: it creates an automation and an endpoint trigger, and assigns a route_name. This is meaningful context that helps predict side effects. It does not disclose potential edge cases like duplicate automation names, but the core creation behavior is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: a concise one-sentence summary followed by a one-sentence explanation of the automation/endpoint wrapping. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, output schema present), the description explains both the purpose and the underlying mechanism (automation + endpoint trigger) sufficiently for an agent to decide to invoke it. It does not describe return values, but the output schema covers that. The only minor gap is not explicitly contrasting with expose_workflow, but the resource distinction is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself fully documents each parameter. The description adds no additional parameter semantics beyond the schema, but does not need to. It mentions route_name in the context of how the agent will be triggered, which is a minor extra connection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Expose an agent as an API endpoint trigger.' It clearly differentiates from sibling tools like expose_workflow (exposes a workflow) and trigger_automation (triggers an existing automation). The second sentence further clarifies the mechanism, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by explaining that the agent can be started via trigger_automation using the assigned route_name, and that it wraps the agent with an endpoint trigger. It does not explicitly list exclusions or alternatives, but the distinct mention of trigger_automation and the contrast with expose_workflow imply appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expose_workflowExpose WorkflowA
Expose a workflow as an API endpoint.
Creates an automation and API endpoint trigger to expose a workflow for external consumption. This enables workflows to be called via REST API endpoints with custom routing and input validation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the workflow to expose | |
| project | No | The project where the workflow resides | |
| route_name | No | The API route name to assign to this endpoint | |
| endpoint_name | No | Set the name for the trigger endpoint | |
| endpoint_schema | No | Set the request schemd for the endpoint trigger | |
| endpoint_description | No | Set a description on the endpoint trigger |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | The status of the expose operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description need not repeat that. The description adds useful behavioral context: it creates an automation and an API endpoint trigger, and mentions custom routing and input validation. This goes beyond the annotation baseline, though it does not discuss side effects like overwriting or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, starts with a one-sentence summary, and then provides concise elaboration. Every sentence earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and full parameter documentation, the description adequately conveys the core behavior and use case. It lacks explicit prerequisites (e.g., workflow must exist) or limitations, but these are not essential for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not provide param-specific details but hints at the purpose of route_name ('custom routing') and endpoint_schema ('input validation'). Since the schema itself fully documents each parameter, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action: 'Expose a workflow as an API endpoint' and elaborates that it creates an automation and API endpoint trigger. This distinguishes it from sibling tools like start_workflow or trigger_automation, which execute workflows rather than making them externally callable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: to enable workflows to be called via REST API endpoints with custom routing and input validation. However, it does not explicitly state when not to use it or mention alternative tools, so it lacks the full exclusion criteria for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_executionsGet Action ExecutionsARead-onlyIdempotent
Get action execution history from Lifecycle Manager filtered by resource and instance.
Retrieves the history of action executions performed in the Lifecycle Manager, including details about action runs, their status, timestamps, and associated resources and instances.
| Name | Required | Description | Default |
|---|---|---|---|
| instance_name | Yes | The instance name | |
| resource_name | Yes | The Lifecycle Manager resource name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for action execution history endpoints. This root model wraps a list of action execution elements, providing a standardized response format for API endpoints that return action execution history from the lifecycle manager. Attributes: root: A list of ActionExecutionElement objects representing the execution history of lifecycle actions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description's 'Retrieves the history' aligns with these. The description adds useful behavioral context by specifying that the history includes details about action runs, status, timestamps, and associated resources/instances. This goes beyond the annotations, though it does not mention potential limitations like pagination or data retention.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and front-loaded, with the first sentence serving as a clear summary. The second sentence adds some detail but contains redundancy (e.g., repeating 'action executions' and 'resources and instances'). It is not overly verbose, but it could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple read-only getter with two required parameters, an output schema, and read-only annotations, the description covers the essential aspects: what it retrieves, the filter scope, and the kind of information included. It does not explain return values, but the output schema handlen that. It adequately covers the context for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters (resource_name and instance_name) with descriptions, achieving 100% schema coverage. The description's phrase 'filtered by resource and instance' merely restates the parameter names without adding new meaning, types, or constraints. The baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets action execution history from Lifecycle Manager, with a specific verb ('get'), a specific resource ('action execution history'), and a scope ('filtered by resource and instance'). This distinguishes it from sibling tools like get_jobs or describe_job, which target different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or situations where another tool would be more appropriate. The context of 'filtered by resource and instance' implies a use case but does not clarify when to choose this over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_adaptersGet AdaptersARead-onlyIdempotent
Get all adapters configured on the Itential Platform instance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the get adapters API endpoint. This root model wraps a list of GetAdaptersElement objects representing all configured adapters on the Itential Platform server. Attributes: root: List of adapter elements, each containing adapter details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds no extra behavioral context such as return format, pagination, or performance implications. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that front-loads the verb and object, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with an output schema and read-only annotations, the description fully captures the tool's functionality. No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty, matching the baseline of 4 for no parameters. The description does not need to explain any parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all adapters configured on the Itential Platform instance.' This is a specific verb and resource, and it distinguishes from action-oriented sibling tools like start_adapter and stop_adapter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when listing adapters is needed but provides no explicit exclusions or alternatives. It does not mention that actions like starting/stopping adapters are separate tools, so guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentsGet AgentsARead-onlyIdempotent
Get all agent automations from Itential Platform.
Agents are AI-driven automation components managed by the Operations Manager. Each agent automation may optionally have an endpoint trigger that exposes it for programmatic invocation via the same mechanism as workflows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for agent automation collection endpoints. Wraps a list of AgentElement objects returned from the operations manager when querying for agent-type automations. Attributes: root: List of AgentElement objects with agent metadata and trigger info. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, which already establish the safety profile. The description adds the scope of 'all' and explains agent endpoint triggers, but doesn't disclose behavior such as pagination or output size, making it adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: the first is a clear action, the next two provide necessary domain context about agents and endpoint triggers. No redundant filler; the structure front-loads the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameter-less read-only tool, the description covers what it does and why agents matter. The presence of an output schema covers return details, and the annotations cover safety, so this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description adds no parameter-specific meaning. Per the rubric, zero params get a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all agent automations from Itential Platform' – a specific verb and resource. It further defines what agents are, distinguishing them from generic automations/workflows, which helps differentiate from sibling tools like get_automations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving agent automations but never explicitly says when to use it over related tools such as get_automations or expose_agent. It provides domain context but no exclusions or alternative recommendations, so the agent isn't guided 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_agent_session_token_usageGet Agent Session Token UsageARead-onlyIdempotent
List per-session token usage for a single agent, sorted chronologically.
Fetches agent sessions filtered to the given agent name and returns one row per matching session (no aggregation), useful for time-series inspection of an agent's usage. Only COMPLETE sessions are included by default — see include_failed to also include FAILED sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | Yes | Filter to agent names containing this substring (case-insensitive) | |
| started_after | No | ISO 8601 timestamp — only include sessions started at or after this time | |
| include_failed | No | By default only COMPLETE sessions count toward usage (finished, billable work). Set true to also include FAILED sessions, which can still have consumed real tokens. Non-terminal statuses (PENDING, RUNNING, PAUSED, ...) are always excluded either way, since their totals aren't final. | |
| started_before | No | ISO 8601 timestamp — only include sessions started at or before this time |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the per-session agent token usage endpoint. Wraps a list of AgentSessionTokenUsageElement objects for a single agent, sorted by started_at ascending. Attributes: root: List of AgentSessionTokenUsageElement objects with per-session token usage and timing metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds substantial behavioral context: one row per session, chronological order, no aggregation, default inclusion of only COMPLETE sessions, and clarify that 'include_failed' extends to FAILED sessions while non-terminal statuses are always excluded. This covers key edge cases without contradicting any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, with the core purpose front-loaded in the first sentence. The second sentence expands with scope and use case, and the third addresses the key filtering behavior. Every word earns its place, and the structure flows naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, clear annotations, and the presence of an output schema, the description fully covers what an agent needs to select the tool and understand its data scope. It explains the per-session granularity, filtering default, inclusion of failed sessions, and non-terminal exclusion, leaving no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (agent_name, started_after, include_failed, started_before) already has a thorough description covering substring matching, ISO timestamps, defaults, and semantics. The tool description only references include_failed conceptually and adds no new parameter-level information beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List per-session token usage for a single agent' — a specific verb and resource, and explicitly notes 'no aggregation', which distinguishes it from sibling tools like get_agent_token_usage that likely aggregate. It also states 'sorted chronologically', further clarifying the exact nature of the result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly situates the tool's use case: 'useful for time-series inspection of an agent's usage.' It also conveys that this is the per-session variant, implying aggregated alternatives exist. It doesn't explicitly name an alternative or state when not to use it, but the context is strong enough for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_token_usageGet Agent Token UsageARead-onlyIdempotent
Aggregate agent session token usage grouped by agent name.
Fetches agent sessions and groups them by agent name, computing token consumption statistics (sum, average, min, max) for both input and output tokens per agent. Sessions with missing or null token values are still counted toward session_count but contribute 0 to sum, average, and min/max calculations. Sessions with no agent name are grouped under a None-keyed entry rather than dropped. Only COMPLETE sessions are included by default — see include_failed to also include FAILED sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | No | Filter to agent names containing this substring (case-insensitive) | |
| started_after | No | ISO 8601 timestamp — only include sessions started at or after this time | |
| include_failed | No | By default only COMPLETE sessions count toward usage (finished, billable work). Set true to also include FAILED sessions, which can still have consumed real tokens. Non-terminal statuses (PENDING, RUNNING, PAUSED, ...) are always excluded either way, since their totals aren't final. | |
| started_before | No | ISO 8601 timestamp — only include sessions started at or before this time |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the agent token usage aggregation endpoint. Wraps a list of AgentTokenUsageStats objects, one per distinct agent name (including a None-keyed entry for sessions with no agent name), sorted by total_tokens descending. Attributes: root: List of AgentTokenUsageStats objects with aggregated token usage metrics per agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and idempotentHint, but the description goes beyond by detailing how null token values are treated (counted in session_count but contribute 0 to statistics), that sessions without an agent name appear under a None key, and that only COMPLETE sessions are included by default. These edge cases are critical for an agent to correctly interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, each adding value: a crisp summary, the grouping/statistics logic, the null/None handling, and the status filter. There is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema, the description covers all essential behavioral aspects: aggregation variance, null handling, ungrouped sessions, and status filtering. This is complete for a moderate-complexity reporting tool; nothing needed is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have full schema descriptions (100% coverage), which earns a baseline of 3. The description adds meaningful context beyond the schema by explaining that include_failed allows FAILED sessions 'which can still have consumed real tokens' and that non-terminal statuses are always excluded, giving the agent deeper understanding of parameter effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a decisive summary: 'Aggregate agent session token usage grouped by agent name.' This specifies the verb (aggregate), resource (agent session token usage), and grouping dimension, clearly distinguishing it from per-session tools like describe_session_token_usage or get_agent_session_token_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on default behavior ('Only COMPLETE sessions are included by default') and points to include_failed for FAILED sessions. However, it never explicitly differentiates this tool from sibling tools with similar names, leaving when-to-use guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicationsGet ApplicationsARead-onlyIdempotent
Get all applications configured on the Itential Platform instance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for retrieving all applications from Itential Platform. This model wraps a list of GetApplicationsElement objects, providing a complete inventory of all applications configured on the platform instance along with their current states and metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, so the safe read-only nature is given. The description adds context that the list is platform-wide ('configured on the Itential Platform instance'), which is useful. However, it does not disclose other behavioral details such as pagination, ordering, or response structure beyond what output schema might provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately states the action and scope. There is no wasted wording or redundant information, making it as concise and effective as possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 params, read-only, no nested objects) and the presence of an output schema, the description sufficiently covers the essential context. It clearly identifies the resource and scope, and the output schema handles return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, there are no parameter semantics to explain. The schema itself is complete and the description adds no additional parameter information, which is appropriate for a parameterless tool. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'all applications' and clarifies scope as 'configured on the Itential Platform instance.' This distinguishes it from sibling tools like get_adapters or get_services, which retrieve different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this is for retrieving the full application list for the platform instance, providing enough context for when to use it. It does not explicitly mention alternatives or when not to use it, but the scope is unambiguous among the sibling listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_automationsGet AutomationsARead-onlyIdempotent
Get all automations from the Itential Platform Operations Manager.
Returns a unified list of all automation objects regardless of component type (workflows, agents, compliance plans). Each entry includes the component_type discriminator and the route_name needed to trigger it via trigger_automation.
Use this when you need a full picture of what is available in the Operations Manager. Use get_workflows when you only need workflow-type automations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the unified automations collection. Wraps a list of AutomationElement objects covering all component types. Attributes: root: List of AutomationElement objects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds valuable behavioral context by noting the response includes component_type discriminator and route_name needed for triggering via trigger_automation. This goes beyond the annotations and helps the agent understand the output shape and cross-tool integration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the core purpose, then adds usage guidance and cross-references. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description is fully complete: it states what is returned, how to use it, and when better alternatives exist. The presence of an output schema covers return-value details, and the description supplies the necessary semantic context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), so the baseline is 4. The description doesn't need to elaborate on parameters, but it does add contextual meaning about what the returned automations look like (component_type and route_name), which supports effective use even though there are no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets all automations from the Itential Platform Operations Manager and explicitly distinguishes it from get_workflows by noting it returns a unified list of workflows, agents, and compliance plans. This is a specific verb+resource with clear sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use this when you need a full picture of what is available in the Operations Manager.' It also names an alternative: 'Use get_workflows when you only need workflow-type automations.' This clearly orients the agent about when to select this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_command_templatesGet Command TemplatesARead-onlyIdempotent
Get all command templates from Itential Platform.
Command Templates are run-time templates that actively pass commands to devices and evaluate responses against defined rules. Retrieves templates from both global space and projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes | List of command template objects with configuration details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable context by defining what command templates are (runtime templates that pass commands and evaluate responses) and clarifying the retrieval scope. It does not contradict annotations and provides behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: a direct statement of function, a brief explanation of what command templates are, and a scope clarification. Each sentence earns its place with no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a rich annotation set, an output schema, and a clear description that covers both the definition and scope, the tool is fully contextualized. The sibling tools provide alternatives, and the description sufficiently distinguishes this one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero input parameters, so the schema is trivially covered. The baseline for 0 parameters is 4, and the description does not need to explain parameter semantics. It appropriately omits any parameter talk.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all command templates from Itential Platform', using a specific verb and resource. It distinguishes command templates from generic templates and from describe_command_template by emphasizing 'all' and noting retrieval from 'both global space and projects.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying 'all command templates' and the scope (global and projects), which distinguishes it from describe (single) and create/update operations. However, it does not explicitly name alternative tools or provide when-not-to-use guidance, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compliance_plansGet Compliance PlansARead-onlyIdempotent
Get all compliance plans from Itential Platform.
Compliance plans define configuration validation rules and checks that can be executed against network devices to ensure they meet organizational standards.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plans | Yes | List of compliance plan objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds limited behavioral context. It explains what compliance plans are (configuration validation rules), which is useful domain context, but it does not mention pagination, return format, or other runtime behavior. This is acceptable for a simple getter but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action 'Get all compliance plans'. The second sentence adds relevant domain context without unnecessary fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, the description is adequate. It explains the resource and its significance in the domain. It could mention that it returns a list of all plans, but this is already implied by 'Get all' and the output schema covers return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (trivially). The description does not need to explain parameters because there are none. The baseline for zero parameters is 4, and the description appropriately focuses on the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'compliance plans' and scope 'from Itential Platform'. It also explains what compliance plans are, distinguishing this list operation from sibling tools like run_compliance_plan and describe_compliance_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for retrieving all compliance plans, but it does not explicitly state when to use it versus related alternatives such as run_compliance_plan or describe_compliance_report. The purpose is obvious, yet no direct guidance on choosing this tool over others is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_configurationGet Device ConfigurationARead-onlyIdempotent
Retrieve the current configuration from a network device.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the device to retrieve the configuration from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for get_device_configuration function. This model represents the response from the get_device_configuration function, which returns the current configuration of a network device as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is clear. The description adds minimal context ('current configuration') but does not disclose additional behaviors such as whether it requires network reachability or authentication. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose without any filler or redundancy. It is appropriately sized for a simple one-parameter read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema, so the description need not explain return values. However, given the many related sibling tools (backup, apply, get_devices), the description does not provide enough context to distinguish edge cases or prerequisites, making it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the sole parameter 'name' with a clear description, achieving 100% schema description coverage. The tool description itself adds no additional meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'retrieve' with a clear resource ('current configuration') and scope ('from a network device'). It distinguishes itself from sibling tools like apply_device_configuration and backup_device_configuration by focusing on read-only retrieval of the current state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions or compare with backup/apply functions, leaving the agent to infer the appropriate context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_groupsGet Device GroupsARead-onlyIdempotent
Get all device groups from Itential Platform.
Device groups are logical collections of network devices that can be managed together for configuration, compliance, and automation tasks. They provide an organizational structure for grouping devices by function, location, or type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for retrieving all device groups from Itential Platform. This model wraps a list of DeviceGroupElement objects, providing a complete inventory of all device groups configured on the platform instance along with their member devices and metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds only conceptual context about device groups, not additional behavioral details like pagination or sorting. This is acceptable given the simple read-only nature, but the description doesn't go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear first sentence stating the action and subsequent sentences providing useful context about device groups. Every sentence contributes to understanding the tool's purpose and domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with an output schema and strong annotations, the description is complete. It explains what the tool returns (all device groups) and provides domain context, fully adequate for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty. The description mentions 'all' device groups, clarifying the unfiltered scope, which is useful. Since no parameters exist, the baseline for semantics is high and this is adequately handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get all device groups' with a specific verb and resource, and the context about what device groups are clarifies the object. It distinguishes from sibling tools like create_device_group or add_devices_to_group by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied for listing device groups, but the description provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions. No mention of related tools for creating or modifying groups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_devicesGet DevicesARead-onlyIdempotent
Get all devices known to Itential Platform.
Itential Platform federates device information from multiple sources and makes it available for network automation workflows. Devices represent physical or virtual network infrastructure that can be managed, configured, and monitored.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for get_devices function. This model represents the complete response from the get_devices function, which returns a list of devices available in the Configuration Manager. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds context about device types and federation but does not disclose additional behavioral traits such as pagination, result size limits, or authentication requirements. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loaded with the purpose. The second and third sentences add useful domain context about what devices are, though they could be seen as slightly extra. No content is wasted, and it remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list-all tool with an output schema, the description is reasonably complete. It explains what devices are and the federation context. It does not mention pagination or ordering, but these may be covered by the output schema. Overall, adequate without major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline of 4 applies. The description needs to add no parameter details. It correctly implies no inputs are required by saying 'get all devices.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get all devices known to Itential Platform.' The verb 'get' with the resource 'devices' is specific and unambiguous. It effectively distinguishes from siblings by naming the exact resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about Itential Platform federating device information, implying this tool is for retrieving the full device inventory. However, it does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions or alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gatewaysGet GatewaysARead-onlyIdempotent
Get the list of all know services from Itential Platform Gateway Manager
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the get gateways API endpoint. This root model wraps a list of GatewayElement objects representing all gateways available through Gateway Manager. Attributes: root: List of gateway elements, each containing gateway details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, establishing a safe, repeatable read. The description adds that it returns 'all known services' and specifies the source as 'Arch Gateway Manager', providing scope context beyond annotations. However, it does not disclose output format, pagination, or any operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 17 words, directly stating the action and resource with no filler. The minor typo ('know' instead of 'known') does not affect conciseness, making it appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema, the description sufficiently covers the scope ('all known services') and source ('Itential Platform Gateway Manager'). The presence of an output schema obviates the need to explain return values, so the description is complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), so the description correctly avoids discussing parameters. With no parameters to document, the schema provides complete coverage and the description does not need to compensate, meeting the baseline for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('list of all known services from Itential Platform Gateway Manager'), which communicates the core function. However, it uses 'services' instead of 'gateways' and does not distinguish it from sibling tools like get_services, and the typo 'know' slightly undermines clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention use cases, exclusions, or compare with get_services or other sibling tools, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_golden_config_treesGet Golden Config TreesARead-onlyIdempotent
Get all Golden Configuration trees from Itential Platform.
Golden Configuration trees are hierarchical templates that define configuration structures for network devices. They provide a framework for managing device configurations with variable substitution and version control capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for get_golden_config_trees function. This model represents the complete response from the get_golden_config_trees function, which returns a list of Golden Configuration trees available in the Configuration Manager. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds value by explaining the purpose and features of Golden Configuration trees, including variable substitution and version control.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences: the first states the action, the second provides useful background. No wasted words, and the structure front-loads the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read operation with an existing output schema, the description fully covers purpose and resource context. No missing critical information is evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already covers everything. The description appropriately focuses on the resource rather than parameter details, matching the baseline for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get all Golden Configuration trees') with a specific resource and scope. It distinguishes itself from siblings like create_golden_config_tree and add_golden_config_node by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about what Golden Configuration trees are, implying this is the tool to list them. It does not explicitly exclude alternatives, but the simple get-all operation makes the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_healthGet HealthARead-onlyIdempotent
Get comprehensive health information from Itential Platform.
System health monitoring provides visibility into platform performance, resource utilization, and component status. This enables proactive monitoring and troubleshooting of the automation infrastructure.
This function uses parallel async API calls to efficiently retrieve health data from all platform endpoints simultaneously, providing optimal performance for comprehensive health monitoring.
Note: This function also provides a complete list of all applications and adapters running on the platform as part of the health data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| server | Yes | Node.js server runtime information and performance metrics |
| status | Yes | Overall platform status including service states and health indicators |
| system | Yes | System-level hardware and operating system information |
| adapters | No | Complete list of adapters with their current status and connectivity information |
| applications | No | Complete list of applications with their current status and resource usage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds useful behavioral context about parallel async API calls for efficient retrieval. It also clarifies that the response includes a complete list of applications and adapters, which is beyond what the annotations convey. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, with a clear opening sentence followed by supporting context. Some sentences are somewhat generic ('enables proactive monitoring and troubleshooting'), but the overall length is justified by explaining the parallel API behavior and the additional apps/adapters list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and a documented output schema, the description is complete. It explains the tool's purpose, the scope of the health data, the method of retrieval (parallel async calls), and notes the additional app/adapter information. This is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema provides no semantic burden. The description does not need to explain parameters, and it adds relevant context about what data is retrieved. Baseline 4 is appropriate for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves comprehensive health information from the Itential Platform, with a specific verb ('get') and resource ('health information'). It distinguishes itself by noting it also provides a complete list of all applications and adapters, which separates it from sibling tools like get_applications and get_adapters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description outlines the purpose of health monitoring and mentions proactive monitoring and troubleshooting, implying when to use the tool. It also hints at an alternative use case by noting it returns the full application/adapter list, but it does not explicitly say when not to use it or when to prefer siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instancesGet InstancesARead-onlyIdempotent
Get all instances of a Lifecycle Manager resource from Itential Platform.
Resource instances represent actual network services or infrastructure components created from resource models. They contain the specific data and state information for managed resources.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_name | Yes | The Lifecycle Manager resource name to retrieve instances for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for instance collection endpoints. This root model wraps a list of instance elements, providing a standardized response format for API endpoints that return multiple resource instances from the lifecycle manager. Attributes: root: A list of GetInstancesElement objects representing all instances of a specific resource model. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds conceptual context about what resource instances are rather than additional behavioral traits. It does not mention pagination or error behavior, but for a read-only list operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It places the operation up front and adds a brief explanatory sentence about instances, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter read-only operation with an output schema, the description is adequate. It could be improved by explicitly noting the relationship to describe_instance for single-instance details, but the core operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides a complete description for the single parameter resource_name, covering 100% of parameter semantics. The description adds no extra parameter-level detail beyond restating the resource name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all instances for a Lifecycle Manager resource, with a specific verb and object. It does not explicitly name alternative tools like describe_instance, but the scope is distinct from sibling tools such as get_resources and describe_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to list all instances of a resource, but provides no explicit guidance on when to prefer this over describe_instance or other related operations. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_modelsGet Integration ModelsARead-onlyIdempotent
Get all integration models from Itential Platform.
Integration models define API specifications for external systems and services that can be integrated with Itential Platform. They are based on OpenAPI specifications and enable automated interaction with third-party systems.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the get integration models API endpoint. This root model wraps a list of GetIntegrationModelsElement objects representing all integration models on the Itential Platform server. Attributes: root: List of integration model elements, each containing model details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, which covers the safety profile. The description adds the scope 'all' (implying no filtering) and clarifies the purpose of integration models, but does not disclose additional behavioral traits such as return format, pagination, or authentication requirements. With annotations providing the key safety context, this description does not go beyond them significantly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. The first sentence states the action immediately, and the subsequent two sentences add valuable domain context about what integration models are and why they matter. Every sentence contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, no-parameter, read-only tool with an output schema, the description is largely complete. It explains the domain and purpose of integration models, which helps the agent understand the returned data. The only minor gap is the lack of explicit differentiation from the sibling tool get_integrations, but that is more of a usage guideline issue than a completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so there are no parameter semantics to explain. Per the evaluation rule, 0 params earns a baseline of 4, and the description does not need to compensate for any missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get all integration models from Itential Platform.' This clearly distinguishes it from sibling tools like get_integrations (which likely lists active integrations) and create_integration_model (a write operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the action 'Get all integration models' but there is no explicit guidance on when to choose this tool over alternatives such as get_integrations. The description provides background about what integration models are but does not state exclusions or alternative tool recommendations, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integrationsGet IntegrationsARead-onlyIdempotent
Get all integration instances from Itential Platform with optional model filtering.
This function retrieves integration instances from the Itential Platform. Integration instances are configured implementations of integration models that define connections to external systems.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Return only integrations for the specified model |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the get integrations API endpoint. This root model wraps a list of GetIntegrationsElement objects representing all integration instances on the Itential Platform server. Attributes: root: List of integration instance elements, each containing instance details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds conceptual context about what integration instances are but no additional behavioral details like pagination or output structure, which would be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but has redundancy, repeating 'Itential Platform' and 'integration instances' across the first two sentences. It could be tightened to a single sentence without loss of meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and read-only annotations, the description sufficiently covers the tool's purpose and filter behavior. It does not need to explain return values, though adding an example or clarifying behavior with no filter would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the 'model' parameter. The description enhances this by explicitly stating 'optional model filtering,' adding semantic clarity that the parameter acts as a filter on the returned instances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves 'all integration instances' with optional filtering, using a specific verb and resource. It distinguishes from sibling tools like get_integration_models by focusing on instances rather than models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing integration instances but does not explicitly mention when to use this over alternatives such as get_integration_models or get_adapters. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventoriesGet InventoriesARead-onlyIdempotent
Get all inventories from Itential Platform.
Inventories are collections of network devices organized for bulk configuration management, compliance checking, and automation tasks. They provide an organizational structure for grouping devices by function, location, or type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for retrieving all inventories from Itential Platform. This model wraps a list of InventoryElement objects, providing a complete listing of all inventories configured on the platform instance along with their metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and idempotentHint=true. The description adds no behavioral traits beyond this, such as pagination or response handling; it only adds domain context about inventories, which is not behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with the operation front-loaded. The conceptual explanation of inventories is useful but slightly extraneous; nonetheless, it is brief and doesn't waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list-all operation with an output schema present, the description is sufficient. It clearly defines the resource and scope; remaining details like return format are covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty (100% coverage), so there is no parameter burden. The baseline of 4 applies; the description adds context about the inventory concept but no parameter-level details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all inventories from Itential Platform' with a specific verb, resource, and 'all' scope. It distinguishes from sibling tools like describe_inventory by emphasizing the full collection, though it doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving the complete inventory list and gives useful domain context about what inventories are. However, it provides no explicit when/when-not guidance and doesn't mention alternatives like describe_inventory for a single inventory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_metricsGet Job MetricsARead-onlyIdempotent
Get aggregate job metrics from the Workflow Engine.
The Workflow Engine maintains comprehensive metrics about workflow execution performance, providing insights into automation efficiency, success rates, and resource utilization across all workflow jobs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for job metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of job metrics from the Itential Platform workflow engine. It wraps a list of JobMetricElement objects, enabling type-safe handling of job metrics data across the platform. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained job metric elements. Args: root: List of JobMetricElement objects containing job performance data. Defaults to an empty list if not provided. Attributes: root (List[JobMetricElement]): Collection of job metric elements with performance and completion statistics for workflow monitoring Example: Creating a response with multiple job metrics: >>> job1 = JobMetricElement(_id="job1", workflow="wf1", metrics=[], ... jobsComplete=10, totalRunTime=100.0) >>> job2 = JobMetricElement(_id="job2", workflow="wf2", metrics=[], ... jobsComplete=20, totalRunTime=250.5) >>> response = GetJobMetricsResponse([job1, job2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].jobs_complete) # 10 Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained JobMetricElement objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful context about the nature of the metrics (automation efficiency, success rates, resource utilization), which goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and adds relevant detail in the second sentence. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only tool with an output schema, the description is complete. It states the source and scope of the metrics, and the annotations plus output schema cover the rest. No additional behavior needs disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters, and the schema coverage is 100% with no param descriptions required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets aggregate job metrics from the Workflow Engine, with a specific verb and resource. It distinguishes from siblings like get_task_metrics and get_job_metrics_for_workflow by emphasizing 'aggregate' and 'across all workflow jobs'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for overall job metrics but provides no explicit guidance on when to use this versus alternatives such as get_job_metrics_for_workflow or get_task_metrics. It does not mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_metrics_for_workflowGet Job Metrics for WorkflowARead-onlyIdempotent
Get the job metrics for the specified workflow from Workflow Engine.
Retrieves job execution metrics filtered by a specific workflow name, providing targeted insights into the performance and execution statistics for jobs within that particular workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the workflow to get the job metrics for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for job metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of job metrics from the Itential Platform workflow engine. It wraps a list of JobMetricElement objects, enabling type-safe handling of job metrics data across the platform. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained job metric elements. Args: root: List of JobMetricElement objects containing job performance data. Defaults to an empty list if not provided. Attributes: root (List[JobMetricElement]): Collection of job metric elements with performance and completion statistics for workflow monitoring Example: Creating a response with multiple job metrics: >>> job1 = JobMetricElement(_id="job1", workflow="wf1", metrics=[], ... jobsComplete=10, totalRunTime=100.0) >>> job2 = JobMetricElement(_id="job2", workflow="wf2", metrics=[], ... jobsComplete=20, totalRunTime=250.5) >>> response = GetJobMetricsResponse([job1, job2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].jobs_complete) # 10 Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained JobMetricElement objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds some context about returning 'job execution metrics' and 'performance and execution statistics', but doesn't disclose additional behavioral traits like pagination, rate limits, or error conditions. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences—with the main action front-loaded. The second sentence elaborates on the purpose without unnecessary fluff, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with rich annotations, a read-only hint, and an output schema, the description is complete. It clearly states what the tool does and the filtering criterion; the output schema handles return values, so no further detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter 'name' is fully documented in the schema. The description repeats the concept of 'specified workflow name' but adds no extra semantic detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'job metrics' scoped to 'the specified workflow', distinguishing it from sibling tools like get_job_metrics (global) and get_task_metrics_for_workflow (task metrics). This makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is for retrieving job metrics filtered by a specific workflow name, providing clear usage context. However, it does not explicitly name alternatives or state when not to use it, lacking the 'when-not/alternatives' threshold for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobsGet JobsBRead-onlyIdempotent
Get all jobs from Itential Platform.
Jobs represent workflow execution instances that track the status, progress, and results of automated tasks. They provide visibility into workflow execution and enable monitoring of automation operations.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Workflow name used to filter the results | |
| project | No | Project name used to filter the results |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for job collection endpoints. This root model wraps a list of job elements, providing a standardized response format for API endpoints that return multiple jobs from the operations manager. Attributes: root: A list of JobElement objects representing all available jobs on the platform. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, establishing the safety profile. The description adds domain context (jobs as workflow execution instances) but does not disclose behaviors like pagination, filtering semantics, or result ordering. Overall it provides minimal additional behavioral transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action. The supporting sentences define jobs in domain terms, which is useful context but not essential for invocation. It earns its place without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional filters and an output schema, the description adequately explains the domain and purpose. It lacks usage guidelines and does not mention filtering, but the schema covers parameters and the annotations handle safety. It is complete enough for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, and the schema descriptions are clear. The description does not add any parameter-specific guidance, and its phrase 'Get all jobs' slightly obscures the optional filtering by name or project, though this is not a contradiction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all jobs from Itential Platform' with a clear verb and resource, and explains what jobs are. However, it does not distinguish this from related tools like describe_job or get_job_metrics, which focus on specific aspects of jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only explains what jobs are and emphasizes monitoring, but it does not state exclusions or compare with sibling tools such as describe_job or get_job_metrics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsGet ProjectsARead-onlyIdempotent
Get all Automation Studio projects from Itential Platform.
Projects in Automation Studio organize workflows, templates, and other automation artifacts into logical groupings for team collaboration and asset management.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for get_projects function. Contains the list of project summaries returned by the get_projects operation. Each project summary includes only the essential fields: id, name, and description. Attributes: root: List of project summary objects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds context about what projects are and that all are returned, providing meaning beyond the annotations. However, it does not detail response shape or pagination, but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the action ('Get all Automation Studio projects') and then providing helpful background. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with output schema and read-only annotations, the description is complete. It explains what the tool does and what projects are, which is sufficient for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema has 100% coverage by virtue of being empty. The baseline for zero-parameter tools is 4; the description appropriately adds no unnecessary parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get all Automation Studio projects from Itential Platform.' It clearly distinguishes from the sibling 'describe_project' by emphasizing 'all' projects, making the list-all purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies it is used to retrieve all projects, but it does not explicitly mention alternatives or when not to use this tool. The context is clear enough for a list endpoint, but lacks explicit exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resourcesGet ResourcesARead-onlyIdempotent
Get all Lifecycle Manager resource models from Itential Platform.
Lifecycle Manager resources define data models and workflows for managing network services and infrastructure components throughout their lifecycle. They provide structured templates for creating and managing resource instances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for resource collection endpoints. This root model wraps a list of resource elements, providing a standardized response format for API endpoints that return multiple resource models from the lifecycle manager. Attributes: root: A list of GetResourcesElement objects representing all available resource models on the platform. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and idempotentHint=true, covering the safety profile. The description adds domain context about resource models but does not disclose additional behavioral traits (e.g., pagination, ordering, or that it returns only models and not instances). This aligns with the provided calibration example where the annotation coverage lowers the bar, but the description adds limited behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action in the first sentence. The subsequent two sentences provide domain context that, while not strictly necessary, helps explain the meaning of 'resource models'. It is concise without padding, but the background sentences go slightly beyond the immediate purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple no-parameter list operation. The output schema is present, so the description does not need to explain return values. The description clearly states the scope ('all... resource models') and provides enough domain context for an agent to select it among many siblings. It is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema confirms this with an empty properties object. Per the rubric, 0 parameters earns a baseline score of 4. The description does not need to explain parameters since there are none, and the schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('all Lifecycle Manager resource models from Itential Platform'). It distinguishes itself from siblings like create_resource (which creates) and describe_resource (which describes a single resource) by explicitly stating it gets all resource models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context about what Lifecycle Manager resources are, which helps the agent understand the purpose. However, it does not explicitly mention when to use this tool versus alternatives like get_instances or describe_resource, nor does it state any exclusions. The context is clear enough for a simple list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesGet ServicesARead-onlyIdempotent
Get the list of all know services from Itential Platform Gateway Manager
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for the get services API endpoint. This root model wraps a list of ServiceElement objects representing all services available through Gateway Manager. Attributes: root: List of service elements, each containing service details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds 'all known services' and the source, which clarifies scope but does not disclose additional behavioral details such as authentication, rate limits, or result ordering. Since annotations cover the main behavioral concerns, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb 'Get' and efficiently conveys the purpose. No unnecessary words or repetition; it earns its place. The minor typo 'know' does not detract from the structural clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and an output schema present, the description is nearly complete: it states the resource and scope. It might be improved by distinguishing 'services' from other resource types, but given the tool's simplicity and the available output schema, the description is adequate and complete enough for an agent to select it appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there is no parameter information to add. Per the rubric, 0 params receives a baseline score of 4, and the description does not need to compensate for any missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the list of all know services from Itential Platform Gateway Manager', providing a specific verb ('Get'), a resource ('services'), and a scope ('all known', from Gateway Manager). This distinguishes it from sibling get_* tools like get_adapters or get_gateways, as it targets a distinct resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it offer exclusions or mention sibling tools. However, the scope 'from Itential Platform Gateway Manager' implies that this is the tool for listing services within that context. Usage is implied rather than clearly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionsGet SessionsARead-onlyIdempotent
List agent sessions from Itential Platform.
Agent sessions are created when an agent automation is triggered via an endpoint trigger. Each session records the agent that ran, its execution status, and timing information.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | No | Optional agent name used to filter sessions |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for agent session collection endpoints. Wraps a list of SessionElement objects returned from the AgentSessionManager when listing sessions, optionally filtered by agent name. Attributes: root: List of SessionElement objects with session metadata and status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint and idempotentHint annotations already establish that this operation is safe and has no side effects. The description adds context that sessions record the agent, execution status, and timing information, which helps set expectations for the output. It does not mention any additional behavioral traits beyond that, such as pagination or rate limits, so it adds some but not extensive value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose with a direct verb and resource, and the second provides useful context about what a session is. No filler, no repetition, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only list tool with one optional parameter and an output schema present. The description explains what sessions are and what data they contain, while annotations cover the safety profile. Nothing critical is missing for an 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage of the single optional parameter 'agent_name', with a clear description: 'Optional agent name used to filter sessions'. The tool description does not add any extra meaning to the parameter, so it relies on the schema, which fully documents it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List agent sessions from Itential Platform,' a specific verb and resource that clearly states the tool's function. It further distinguishes the resource by explaining that sessions are created when agent automations are triggered via endpoint triggers, setting it apart from sibling tools like get_agents and get_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by defining what a session is, which helps an agent infer when to use this tool versus listing agents or jobs. However, it does not explicitly name alternative tools or specify when not to use this tool, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_metricsGet Task MetricsARead-onlyIdempotent
Get all aggregate task metrics from the Workflow Engine.
Retrieves comprehensive task-level execution metrics across all workflows, providing detailed insights into task performance, application usage patterns, and execution statistics for automation monitoring and optimization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for task metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of task-level metrics from the Itential Platform workflow engine. It wraps a list of TaskMetricElement objects, enabling type-safe handling of task performance data across automation workflows. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained task metric elements, supporting comprehensive workflow monitoring and analysis. Args: root: List of TaskMetricElement objects containing task performance data. Defaults to an empty list if not provided. Attributes: root (List[TaskMetricElement]): Collection of task metric elements with application usage patterns and execution statistics for workflow analysis Example: Creating a response with multiple task metrics: >>> task1 = TaskMetricElement(taskType="automatic", name="validate-config", ... metrics=[], app="validator") >>> task2 = TaskMetricElement(taskType="manual", name="approve-deploy", ... metrics=[], app="approval-service") >>> response = GetTaskMetricsResponse([task1, task2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].task_type) # "automatic" >>> print(response.root[1].name) # "approve-deploy" Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained TaskMetricElement objects - Enables filtering and analysis of tasks by application, workflow, or type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds context about what the metrics contain (task performance, application usage patterns, execution statistics), which goes beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with front-loaded purpose. The second sentence is somewhat verbose ('comprehensive', 'detailed insights', 'automation monitoring and optimization') but generally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, the description provides adequate context about the data source and content. However, it could more explicitly distinguish itself from the scoped siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is fully covered. The description adds no parameter-specific info, but none is needed; per rubric, 0 params = baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('aggregate task metrics from the Workflow Engine') and scope ('across all workflows'). This differentiates it from sibling tools like get_task_metrics_for_app and get_task_metrics_for_workflow, which are scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies global scope ('across all workflows') but does not explicitly state when to use this tool versus the scoped siblings. It lacks direct 'use X instead' guidance, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_metrics_for_appGet Task Metrics for AppARead-onlyIdempotent
Get all task metrics for the specified application from Workflow Engine.
Retrieves task execution metrics filtered by a specific application name, providing insights into how tasks performed by that application are executing across different workflows and automation processes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the application to retrieve task metrics for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for task metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of task-level metrics from the Itential Platform workflow engine. It wraps a list of TaskMetricElement objects, enabling type-safe handling of task performance data across automation workflows. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained task metric elements, supporting comprehensive workflow monitoring and analysis. Args: root: List of TaskMetricElement objects containing task performance data. Defaults to an empty list if not provided. Attributes: root (List[TaskMetricElement]): Collection of task metric elements with application usage patterns and execution statistics for workflow analysis Example: Creating a response with multiple task metrics: >>> task1 = TaskMetricElement(taskType="automatic", name="validate-config", ... metrics=[], app="validator") >>> task2 = TaskMetricElement(taskType="manual", name="approve-deploy", ... metrics=[], app="approval-service") >>> response = GetTaskMetricsResponse([task1, task2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].task_type) # "automatic" >>> print(response.root[1].name) # "approve-deploy" Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained TaskMetricElement objects - Enables filtering and analysis of tasks by application, workflow, or type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds that the tool reads from Workflow Engine and provides execution insights, but does not disclose any additional behavioral details such as error conditions, pagination, or the specific metrics returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, but the second sentence largely restates the first ('Retrieves task execution metrics filtered by a specific application name' is redundant with 'Get all task metrics for the specified application'), and the phrase 'providing insights...' adds little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single well-documented parameter and an output schema present, the description covers the basic invocation context. However, it lacks explicit usage guidance compared to its many similar sibling tools, and it does not clarify what the metrics contain or any edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'name' is fully described in the schema (100% coverage), and the description repeats that the filter is by application name. No additional parameter semantics are provided beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and resource ('all task metrics') scoped by 'the specified application from Workflow Engine'. It distinguishes itself from sibling tools like get_task_metrics, get_task_metrics_for_task, and get_task_metrics_for_workflow by explicitly mentioning application filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing task metrics filtered by application name, but it does not explicitly state when to use this tool versus the related siblings, nor does it mention when not to use it. Alternatives are not named, which is a gap given the many similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_metrics_for_taskGet Task Metrics for TaskARead-onlyIdempotent
Get all task metrics for the named task from Workflow Engine.
Retrieves task execution metrics filtered by a specific task name, providing detailed performance insights for that particular task across all workflows where it appears.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the task to retrieve task metrics for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for task metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of task-level metrics from the Itential Platform workflow engine. It wraps a list of TaskMetricElement objects, enabling type-safe handling of task performance data across automation workflows. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained task metric elements, supporting comprehensive workflow monitoring and analysis. Args: root: List of TaskMetricElement objects containing task performance data. Defaults to an empty list if not provided. Attributes: root (List[TaskMetricElement]): Collection of task metric elements with application usage patterns and execution statistics for workflow analysis Example: Creating a response with multiple task metrics: >>> task1 = TaskMetricElement(taskType="automatic", name="validate-config", ... metrics=[], app="validator") >>> task2 = TaskMetricElement(taskType="manual", name="approve-deploy", ... metrics=[], app="approval-service") >>> response = GetTaskMetricsResponse([task1, task2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].task_type) # "automatic" >>> print(response.root[1].name) # "approve-deploy" Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained TaskMetricElement objects - Enables filtering and analysis of tasks by application, workflow, or type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description aligns with these by stating 'Retrieves task execution metrics'. It adds behavioral scope by noting 'across all workflows where it appears', which is useful context beyond the annotations. No contradictions or additional safety information needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the primary action front-loaded. The second sentence adds necessary scope and purpose without redundancy. Every phrase earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one parameter, annotations, and an output schema, the description is sufficiently complete. It explains the resource ('Workflow Engine'), the filter ('task name'), and the scope ('across all workflows'), covering all necessary context without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'name' described as 'The name of the task to retrieve task metrics for'. The description reinforces this with 'named task' and 'specific task name' but adds no new format, examples, or constraints. This meets the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all task metrics for the named task' with a specific verb and resource. It distinguishes itself from sibling tools like get_task_metrics_for_workflow and get_task_metrics_for_app by specifying 'task name' and 'across all workflows where it appears'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'filtered by a specific task name' and 'particular task', but it does not explicitly state when to prefer this tool over alternatives such as get_task_metrics_for_workflow or get_task_metrics. No exclusions or alternative references are provided, so it's clear but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_metrics_for_workflowGet Task Metrics for WorkflowBRead-onlyIdempotent
Get all task metrics for the specified workflow from Workflow Engine.
Retrieves task execution metrics filtered by a specific workflow name, providing detailed insights into the performance of individual tasks within that particular workflow for targeted analysis and optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the workflow to retrieve task metrics for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for task metrics collection endpoints. This Pydantic RootModel provides a standardized response format for API endpoints that return collections of task-level metrics from the Itential Platform workflow engine. It wraps a list of TaskMetricElement objects, enabling type-safe handling of task performance data across automation workflows. The root model pattern allows the response to be treated as a list while maintaining proper validation and serialization capabilities for the contained task metric elements, supporting comprehensive workflow monitoring and analysis. Args: root: List of TaskMetricElement objects containing task performance data. Defaults to an empty list if not provided. Attributes: root (List[TaskMetricElement]): Collection of task metric elements with application usage patterns and execution statistics for workflow analysis Example: Creating a response with multiple task metrics: >>> task1 = TaskMetricElement(taskType="automatic", name="validate-config", ... metrics=[], app="validator") >>> task2 = TaskMetricElement(taskType="manual", name="approve-deploy", ... metrics=[], app="approval-service") >>> response = GetTaskMetricsResponse([task1, task2]) >>> print(len(response.root)) # 2 >>> print(response.root[0].task_type) # "automatic" >>> print(response.root[1].name) # "approve-deploy" Notes: - Uses default_factory=list to create empty collections when needed - Supports iteration and indexing through the root attribute - Maintains type safety for all contained TaskMetricElement objects - Enables filtering and analysis of tasks by application, workflow, or type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds that it retrieves execution metrics and provides performance insights, but does not disclose additional behavioral details such as pagination, error handling, or empty result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and contains no unnecessary repetition or filler. The second sentence adds context about the purpose of the metrics without overstating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), strong annotations, and existing output schema, the description is largely complete. It could be enhanced by mentioning that it focuses on workflow-level metrics as opposed to app- or task-level metrics, but overall it provides enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the parameter 'name' adequately described in the schema. The description reinforces that it filters by workflow name but adds no extra meaning beyond the schema, such as format, case sensitivity, or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all task metrics for a specified workflow, using a specific verb and resource. It distinguishes itself by the workflow name scope, but does not explicitly contrast with closely related siblings like get_task_metrics, get_task_metrics_for_app, or get_task_metrics_for_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for workflow-specific task metrics but provides no explicit guidance on when to choose this tool over alternatives, nor any exclusions. Given the many sibling metric tools, this is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templatesGet TemplatesARead-onlyIdempotent
Get all templates from Automation Studio.
Retrieves all templates from the Automation Studio, with optional filtering by template type. Templates are used for text processing, configuration generation, and data parsing within automation workflows.
This function performs paginated requests through the automation studio service to retrieve all available templates, handling large result sets efficiently. Results are transformed into standardized GetTemplatesElement objects for consistent API responses.
| Name | Required | Description | Default |
|---|---|---|---|
| template_type | No | Retrieve only templates of this type |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for template retrieval operations. Root model that wraps a list of GetTemplatesElement objects to provide a standardized response format for template listing operations from the Automation Studio. This model follows the Pydantic RootModel pattern to create a response that serializes directly as a list while maintaining type safety and validation capabilities. Attributes: root (List[GetTemplatesElement]): List of template elements containing template metadata and attributes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds valuable behavioral details about paginated requests, handling large result sets, and transforming results into GetTemplatesElement objects, going beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and appropriately sized, but the first two sentences are redundant ('Get all templates' vs. 'Retrieves all templates'). The remaining sentences add meaningful behavioral context, though eliminating the duplication would make it stronger.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a single optional parameter, the description thoroughly covers purpose, filtering, pagination, and response transformation. The output schema handles return value specifics, and annotations provide safety signals, making this sufficiently complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter template_type is fully described in the schema with its enum values and default, and the description merely restates 'optional filtering by template type.' With 100% schema coverage, the description adds no new parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all templates from Automation Studio' with optional filtering by type, specifying the exact resource and action. It distinguishes from sibling tools like get_command_templates by naming Automation Studio, though it does not explicitly call out alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context about templates being used for text processing and configuration generation, implying when to use this tool for retrieving templates in automation workflows. However, it lacks explicit guidance on when not to use it or how it differs from overlapping tools like get_command_templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowsGet WorkflowsARead-onlyIdempotent
Get all workflow API endpoints from Itential Platform.
Workflows are the core automation engine of Itential Platform, defining executable processes that orchestrate network operations, device management, and service provisioning. Each workflow exposes an API endpoint that can be triggered by external systems or other platform components.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Response model for workflow collection endpoints. This root model wraps a list of workflow elements, providing a standardized response format for API endpoints that return multiple workflows from the operations manager. Attributes: root: A list of WorkflowElement objects representing all available workflows on the platform. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's job is to add context beyond that. It adds conceptual background on workflows and API endpoints but does not disclose operational details like pagination or return format, which is acceptable given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded with the core action. The following two sentences provide background context on workflows, which adds some value but is not strictly necessary. The description is appropriately sized, not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters and an output schema, the description adequately states its purpose. It does not need to explain return values due to the output schema. The background context helps a bit, but operational details like pagination are not mentioned, which is acceptable for this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% as there is nothing to document. The baseline for 0 params is 4, and the description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all workflow API endpoints from Itential Platform' with a specific verb and resource. It distinguishes this from sibling tools like start_workflow or expose_workflow by focusing on retrieval of endpoint definitions rather than execution or exposure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing all workflow API endpoints and provides context on why workflows are important. However, it does not explicitly mention alternatives or exclusions, such as when to use start_workflow or expose_workflow instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_gateway_configurationImport Gateway ConfigurationADestructive
Import a DB configuration into a connected gateway cluster
The configuration content may be supplied inline via content, or fetched from a git repository via the git_* parameters. The gateway must be connected and active.
| Name | Required | Description | Default |
|---|---|---|---|
| check | No | Dry-run diff showing what would change, with no writes. Mutually exclusive with validate. | |
| force | No | Overwrite existing resources. | |
| content | No | Inline DSL document to import — either the object returned by export_gateway_configuration, or a raw YAML/JSON string. Mutually exclusive with the git_* parameters. | |
| git_url | No | Git repository URL to import from. Requires git_file. Mutually exclusive with content. | |
| git_file | No | Path to the DSL file within the git repository. Required when git_url is set. | |
| validate | No | Parse and validate only, with no writes. Mutually exclusive with check. | |
| cluster_id | Yes | The cluster ID of the target gateway | |
| git_password | No | HTTP basic auth password for HTTPS git repositories. Supports $GATEWAYSECRET_(alias) references resolved by the gateway. | |
| git_username | No | HTTP basic auth username for HTTPS git repositories. | |
| git_reference | No | Branch, tag, or SHA to check out. Defaults to the repository's default branch. | |
| git_private_key | No | SSH private key file path on the gateway host filesystem. |
Output Schema
| Name | Required | Description |
|---|---|---|
| added | No | Resources added by the import |
| skipped | No | Resources skipped by the import |
| summary | No | Aggregate counts for the import |
| replaced | No | Resources replaced by the import |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the write risk is known. The description adds useful context about the prerequisite (gateway connected/active) and the two input modes, but does not disclose overwrite semantics or conflict behavior beyond what the force parameter in the schema implies. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core action first, followed by a brief explanatory note on input modes and prerequisite. Every sentence earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters and an output schema, the description covers the two essential input sources and a key prerequisite (gateway connectivity). It does not mention check/validate dry-run options or the relationship with export_gateway_configuration, but those are sufficiently covered by the schema and sibling names, making the description adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 11 parameters, so the baseline is 3. The description adds grouping of content vs git_* parameters but provides no additional syntax or semantic details beyond what the schema already explains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool imports a DB configuration into a connected gateway cluster, with a specific verb (import), resource (DB configuration), and target. It distinguishes from the sibling export_gateway_configuration by direction, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool is used: it supports two supply modes (inline content or git_*) and states the prerequisite that the gateway must be connected and active. It does not mention when to prefer this tool over alternatives or provide exclusions, but it gives enough context for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_devices_from_groupRemove Devices from GroupADestructive
Remove one or more devices from a device group
This tool will remove one or more devices from a named device group. The name argument specifies the name of the device group to remove the list of devices from. The name must be a valid device group. The list of device groups can be found using the get_device_groups tool.
The devices argument provides the list of devices to be removed from the device group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the device group to remove devices from | |
| devices | No | List of devices to remove from the group |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Message that provides the status of the operation |
| message | Yes | Short description of the status of the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that the name must be a valid device group and references get_device_groups, but does not disclose additional behavioral traits like whether the devices themselves are deleted or if the operation is reversible. It provides some context beyond annotations but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured logically in three short paragraphs, but there is redundancy: the first sentence ('Remove one or more devices from a device group') essentially repeats the second sentence ('This tool will remove one or more devices from a named device group'). Still, it is concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with an output schema, the description covers the key points: parameters, prerequisite of a valid group name, and how to find groups. It does not address edge cases like an empty devices list or error handling, but those may be covered by the output schema or are not critical for a well-scoped operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description goes further by explaining that 'name' must be a valid group and that 'devices' is a list, plus it directs users to get_device_groups for valid names, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('remove') and resource ('devices from a device group'). It is unambiguous and distinguishes itself from the sibling 'add_devices_to_group' by direction of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: the name must be a valid device group and points to the get_device_groups tool for finding valid groups. However, it does not explicitly mention when to use this tool over alternatives, such as add_devices_to_group, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_templateRender TemplateBRead-onlyIdempotent
Render a Jinja2 template with provided variables.
Jinja2 templates are commonly used in network automation for generating device configurations, commands, and other text-based content by combining template structures with dynamic variable values.
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | The Jinja2 template string | |
| variables | No | Zero or more variables to associate with this template |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | The fully rendered template with variables substituted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate safety. It adds the Jinja2 rendering detail and typical use case, but does not disclose potential failure modes (e.g., undefined variables) or clarify that no device interaction occurs. Annotations lower the burden, so this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, leads with the action, and is appropriately sized. The second sentence provides useful context but is somewhat redundant with the purpose; still, it earns its place without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters, full schema coverage, read-only annotations, and an output schema, the description adequately covers purpose and typical use. It could explicitly note that it only renders text and does not execute commands on devices, but the annotations and schema cover most operational essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented. The description adds only minimal context ('provided variables') and no additional semantics about formats, defaults, or behaviors beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('render') and resource ('Jinja2 template'), and explains the purpose of combining templates with variables. However, it does not explicitly differentiate from sibling tools like run_command_template, which may also involve template rendering, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives general context about network automation use cases but offers no explicit guidance on when to use this tool versus alternatives such as run_command_template or apply_device_configuration. There are no exclusions or conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_adapterRestart AdapterADestructive
Restart an adapter on Itential Platform.
Behavior based on current adapter state:
RUNNING: Attempts to restart and waits for RUNNING state
STOPPED/DEAD/DELETED: Raises InvalidStateError (cannot restart)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the adapter to restart | |
| timeout | No | Timeout waiting for adapter to restart |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the adapter |
| state | Yes | Opreational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond annotations: it waits for the adapter to reach RUNNING state and raises InvalidStateError for non-running states. Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds state-specific behavior that is not present in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the main purpose in the first sentence followed by clear state-based behavior bullets. Every sentence conveys essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers the essential behavior (restart and state handling). The presence of an output schema means return values are documented elsewhere, so the description is complete for invocation purposes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters (name and timeout) with 100% coverage. The description does not add extra meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool restarts an adapter on Itential Platform, with a specific verb and resource. It distinguishes from siblings like start_adapter and stop_adapter by focusing on restarting an already-running adapter, and it clearly explains state-dependent behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by explaining that restart only works when the adapter is RUNNING and fails for STOPPED/DEAD/DELETED states. While it does not explicitly mention alternative tools like start_adapter for stopped adapters, the state-based guidance makes the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_applicationRestart ApplicationADestructive
Restart an application on Itential Platform.
Behavior based on current application state:
RUNNING: Attempts to restart and waits for RUNNING state
STOPPED/DEAD/DELETED: Raises InvalidStateError (cannot restart)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the application to restart | |
| timeout | No | Timeout waiting for application to restart |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the application |
| state | Yes | Operational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but description adds key behavioral details: it attempts to restart and waits for RUNNING state, and raises InvalidStateError for non-running states. This goes beyond annotations and gives the agent actionable expectations about side effects and errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: one opening sentence, then a bulleted list of state-based behaviors. No unnecessary words. Front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple restart tool with annotations and an output schema, the description covers the essential state-dependent behavior and error handling. It does not describe the output schema contents, but that is not required since an output schema exists. Slightly more could be said about timeout behavior or prerequisites, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions ('name' and 'timeout'), so baseline is 3. The description does not add additional parameter-specific semantics beyond what the schema already provides, though it indirectly ties 'timeout' to 'waits for RUNNING state'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Restart an application on Itential Platform', which is a specific verb+resource. It distinguishes from sibling tools like restart_adapter (different resource) and start/stop_application (different operations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: restart only applies to RUNNING state, and explicitly states invalid states (STOPPED/DEAD/DELETED) raise InvalidStateError. This implies when not to use the tool, though it does not name alternative tools like start_application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_actionRun ActionBDestructive
Run an action that is associated with a Lifecycle Manager resource
| Name | Required | Description | Default |
|---|---|---|---|
| action_name | Yes | The action to run | |
| input_params | No | The input parameters for the action | |
| instance_name | No | The instance name | |
| resource_name | Yes | The Lifecycle Manager resource name | |
| instance_description | No | The instance description |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Id used to get status updates using describe_job tool |
| status | Yes | The current status of the action |
| message | No | Status message about the action |
| start_time | Yes | The time the action was started on the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the safety profile. The description adds no additional behavioral context, such as what side effects running an action may have or how destructive it can be. It does not contradict annotations, but it fails to enrich the agent's understanding of execution consequences beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary wording. It is concise, though it omits essential context, so it does not earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too sparse for a tool with five parameters and an output schema. It does not explain what constitutes an 'action,' how input_params, instance_name, and instance_description are used, or how this tool relates to sibling run tools. The output schema covers return values, but the execution context and selection criteria are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all five parameters. The description adds no further parameter meaning—it only restates the relationship between resource_name and action_name, which the schema already conveys. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'run[s] an action that is associated with a Lifecycle Manager resource,' specifying a verb and resource. However, it does not differentiate from sibling tools like run_command or run_service, so the agent may not know when this action-based execution is the right choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description gives no context about selecting it over other run tools, nor does it mention any prerequisites or exclusions. An agent would have to infer usage from the name and sibling list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_commandRun CommandCDestructive
Run a single command against multiple devices.
| Name | Required | Description | Default |
|---|---|---|---|
| cmd | Yes | The command to run on the devices | |
| devices | Yes | The list of devices to run the command on |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | List of command execution results for each device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral context beyond the annotations. While annotations already flag destructiveHint=true and readOnlyHint=false, the description does not add expected execution behavior, side effects, or safety warnings, which would be valuable for a command execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no redundant words, and each word adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a potentially destructive tool with an output schema and no further guidance, the description is too sparse. It lacks guidance on how results are returned, whether execution is synchronous, or how device selection works, and given destructiveHint, a warning would be appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a clear description. The tool description adds minimal value by clarifying the 'single command' versus multiple devices, but this is already inferable from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('run a single command') and target ('multiple devices'), providing a specific verb and resource. However, it does not explicitly distinguish itself from sibling tool 'run_command_template', so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_command_template' or 'run_action'. There is no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_command_templateRun Command TemplateADestructive
Execute a command template against specified devices with rule evaluation.
Command Templates are run-time templates that actively pass commands to a list of specified devices during their runtime. After all responses are collected, the output set is evaluated against a set of defined rules. These executed templates are typically used as Pre and Post steps, which are usually separated by a procedure (router upgrade, service migration, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the command template to run | |
| devices | Yes | The list of devices to run the command template against | |
| project | No | Project that contains the command template |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | Command template name that was executed |
| all_pass_flag | Yes | Whether all rules must pass for success (True=all must pass, False=any can pass) |
| command_results | Yes | List of results for each command/device combination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a write/possibly destructive operation. The description adds meaningful behavioral context by explaining that command templates "actively pass commands to a list of specified devices" and that "the output set is evaluated against a set of defined rules," clarifying the execution workflow. It does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: a clear one-line summary, an explanatory sentence about how command templates work, and a sentence about typical usage. It is reasonably concise, though the first sentence and the second sentence partially overlap in describing the execution action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing templates on multiple devices with rule evaluation and potential destructiveness), the description explains the overall process and typical use case. It does not cover edge cases like failure handling or rule specifics, but the presence of an output schema and fully documented parameters means the description does not need to explain return values or all parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters (name, devices, project) are already documented. The description adds some context by explaining what a command template is ("run-time templates that actively pass commands") and mentioning "specified devices," which aligns with the devices parameter. However, it does not add additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: "Execute a command template against specified devices with rule evaluation." It specifies a concrete verb (execute), resource (command template), and additional detail (rule evaluation), which distinguishes it from sibling tools like run_command, create_command_template, and get_command_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use this tool: "typically used as Pre and Post steps, which are usually separated by a procedure (router upgrade, service migration, etc.)." It implies the use case of validating device states around procedures, though it does not explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_compliance_planRun Compliance PlanA
Execute a compliance plan against network devices.
Compliance plans validate device configurations against organizational standards by running predefined checks and rules. This function starts a compliance plan execution and returns the running instance details.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the compliance plan to run |
Output Schema
| Name | Required | Description |
|---|---|---|
| instance | Yes | Running compliance plan instance details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a mutating but non-destructive operation. The description adds context by noting it 'starts a compliance plan execution and returns the running instance details,' which suggests an asynchronous or long-running behavior and that the immediate result is not the final outcome. It also mentions it runs 'against network devices,' aligning with openWorldHint=true. This adds value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place. The first sentence states the core action, the second explains the purpose of compliance plans, and the third clarifies what the tool does and what it returns. It is front-loaded with the verb and resource, and contains no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present, clear annotations), the description is nearly complete. It states the action, the domain (network devices), and the return behavior (running instance details). Since an output schema exists, the description does not need to detail return fields. It could mention whether the execution is asynchronous or how to track progress, but that is not essential for 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter, 'name,' with a clear description ('The name of the compliance plan to run'). Schema description coverage is 100%, so the schema fully documents the parameter. The tool description does not add further parameter details, but none are needed because the schema already covers it. This meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Execute a compliance plan against network devices.' It also explains what compliance plans are (validate configurations) and that the tool 'starts a compliance plan execution and returns the running instance details.' This distinguishes it from siblings like get_compliance_plans (which lists plans) and describe_compliance_report (which describes reports). The verb 'execute' plus the resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context by explaining what compliance plans do ('validate device configurations against organizational standards'), which implies when to use the tool. However, it does not explicitly mention alternatives or state when not to use it. There is no direct guidance such as 'use get_compliance_plans to list plans instead.' The usage is implied rather than clearly differentiated from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_serviceRun ServiceCDestructive
Run an existing service using the optional input parameters
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the service to run | |
| cluster | Yes | The name of the cluster where the service lives | |
| input_params | No | Optional input parameters to pass to the service |
Output Schema
| Name | Required | Description |
|---|---|---|
| stderr | No | The output sent to stderr |
| stdout | No | The output sent to stdout |
| end_time | Yes | The end time when the service run completed |
| start_time | Yes | The start time when the service was started |
| return_code | Yes | The return code generated by the service |
| elapsed_time | Yes | The number of seconds the service ran for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context such as potential side effects, resource modifications, or operational impact. It merely repeats the action of running, offering no additional insight beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, effectively front-loading the core action. It is appropriately brief for the simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a complete schema and an output schema, the description is too sparse to be fully contextual. It does not explain what 'run' entails, whether the service is long-running or one-shot, or how it relates to similar tools, leaving significant room for agent confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds 'optional input parameters' but this merely restates the schema property and does not clarify the format or semantics of input_params beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Run' and the resource 'existing service', making the primary action unambiguous. However, it does not explicitly differentiate from sibling tools like start_application or run_command, relying on the term 'service' to imply scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description lacks any mention of prerequisites, context, or exclusions, forcing the agent to infer usage solely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_adapterStart AdapterADestructive
Start an adapter on Itential Platform.
Behavior based on current adapter state:
RUNNING: No action taken (already started)
STOPPED: Attempts to start and waits for RUNNING state
DEAD/DELETED: Raises InvalidStateError (cannot start)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the adapter to start | |
| timeout | No | Timeout waiting for adapter to start |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the adapter |
| state | Yes | Opreational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by detailing exact behavior per adapter state: no action for RUNNING, attempts start and waits for STOPPED, and raises InvalidStateError for DEAD/DELETED. This adds significant context about side effects and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and well-structured, using a concise opening line followed by a bullet-point list for state behaviors. Every sentence adds distinct value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's behavior for all relevant adapter states, including error handling. With an output schema present and a simple two-parameter input, the description provides complete context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters (name and timeout) with clear descriptions, so the schema coverage is 100%. The description does not add additional parameter semantics beyond the schema, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Start an adapter on Itential Platform,' which is a specific verb plus resource. It clearly distinguishes from sibling tools like stop_adapter and restart_adapter by focusing on the start action and describing state-dependent behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The state-based behavior provides clear context for when this tool is applicable: it is effective for STOPPED adapters, a no-op for RUNNING, and an error for DEAD/DELETED. However, it does not explicitly mention alternatives or when not to use it, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_applicationStart ApplicationADestructive
Start an application on Itential Platform.
Behavior based on current application state:
RUNNING: No action taken (already started)
STOPPED: Attempts to start and waits for RUNNING state
DEAD/DELETED: Raises InvalidStateError (cannot start)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the application to start | |
| timeout | No | Timeout waiting for application to start |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the application |
| state | Yes | Operational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Behavioral traits are disclosed beyond the destructiveHint/readOnlyHint annotations: the tool's behavior depends on application state, it waits for RUNNING, and raises InvalidStateError for DEAD/DELETED. This gives the agent operational expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, using a short intro sentence and a bulleted list for state behavior. No redundant text, and all content adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, the description covers the state machine, error cases, and overall purpose. Without seeing the output schema, the return format is presumably covered there. Slight gap: no mention of timeout behavior beyond schema, but schema covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already covers both parameters with descriptions (100% coverage). The tool description does not add parameter-level details beyond what the schema provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Start an application on Itential Platform' with a specific verb and resource. Differentiates from siblings like start_adapter by targeting applications, and the state-based behavior clarifies that it acts only on stopped applications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly name alternatives or when-not-to-use scenarios. It implies usage via state behavior: use when STOPPED, not effective when RUNNING, and unusable when DEAD/DELETED. A clearer reference to restart_application for restart scenarios would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_workflowStart WorkflowADestructive
Triggers a workflow automation endpoint by route name.
This is a thin wrapper around trigger_automation, kept as a stable, workflow-specific entry point. trigger_automation is the general-purpose tool and also supports non-workflow automation types (e.g. agents).
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data to include in the request body when calling the route | |
| route_name | Yes | The name of the API endpoint used to start the workflow |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the core behavioral profile is covered. The description adds only that it is a 'thin wrapper' and 'stable entry point,' which is contextual but not behavioral (e.g., no details on side effects, return behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, then a concise note on the relationship to trigger_automation. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple wrapper with 2 parameters and a high-coverage schema, the description is complete enough. It names the sibling tool and clarifies the scope, while the existence of an output schema means return values don't need to be described. Minor gap: no mention of potential side effects beyond the annotation's destructiveHint, but that is already signal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters are described in the schema. The description reinforces that the tool triggers 'by route name,' aligning with the route_name parameter, but adds no additional parameter-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Triggers a workflow automation endpoint by route name.' It clearly distinguishes itself from trigger_automation by positioning itself as a workflow-specific wrapper, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool versus the alternative: 'trigger_automation is the general-purpose tool and also supports non-workflow automation types (e.g. agents).' This gives clear guidance on when start_workflow is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_adapterStop AdapterADestructive
Stop an adapter on Itential Platform.
Behavior based on current adapter state:
RUNNING: Attempts to stop and waits for STOPPED state
STOPPED: No action taken (already stopped)
DEAD/DELETED: Raises InvalidStateError (cannot stop)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the adapter to stop | |
| timeout | No | Timeout waiting for adapter to stop |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the adapter |
| state | Yes | Opreational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it details state-dependent actions (waiting for STOPPED, no-op on STOPPED, raising InvalidStateError on DEAD/DELETED) and implies idempotency. This is genuinely helpful for an agent predicting side effects and error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a short purpose statement followed by a bullet list of state-based behaviors. Every line conveys useful information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's behavior across all adapter states, including error handling. With a complete input schema and presence of an output schema, no additional context is needed. It is a self-contained, complete description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'name' and 'timeout' have clear descriptions). The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop an adapter') and the resource ('Itential Platform'). It distinguishes from sibling tools like start_adapter and restart_adapter by focusing specifically on stopping and by detailing state-based behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when the tool is appropriate by explaining behavior for RUNNING, STOPPED, and DEAD/DELETED states. It does not explicitly name alternatives or state when not to use it, but the state-based exclusions (e.g., cannot stop DEAD/DELETED) provide practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_applicationStop ApplicationADestructive
Stop an application on Itential Platform.
Behavior based on current application state:
RUNNING: Attempts to stop and waits for STOPPED state
STOPPED: No action taken (already stopped)
DEAD/DELETED: Raises InvalidStateError (cannot stop)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the application to stop | |
| timeout | No | Timeout waiting for application to stop |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the application |
| state | Yes | Operational state (DEAD, STOPPED, RUNNING, DELETED) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable state-machine behavior, including waiting for STOPPED state, no-op behavior, and InvalidStateError for dead/deleted applications, going beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a one-sentence purpose followed by bullet-point state behaviors. Every sentence adds value and is scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description provides thorough context: state-dependent behavior, error conditions, and timeout semantics. This is complete for a simple stop tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (100% coverage), so the baseline is 3. The description adds context by linking the timeout parameter to the wait-for-STOPPED behavior, enhancing understanding of how timeout is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool stops an application on Itential Platform, using a specific verb+resource. The state-based behavior further clarifies scope, and it is distinct from sibling tools like start_application, restart_application, and stop_adapter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when the tool takes action (RUNNING state), when it's a no-op (STOPPED), and when it errors (DEAD/DELETED). This is clear context for usage, though it does not explicitly name alternative tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_automationTrigger AutomationADestructive
Trigger an automation via its Operations Manager endpoint.
Executes any automation (workflow or agent) by calling its endpoint trigger. The response type depends on the automation's component type:
Workflow automations return a job object (StartWorkflowResponse) monitored via describe_job.
Agent automations return a session object (StartAgentResponse) monitored via describe_session.
Use get_automations to discover available automations and their component_type before triggering, so you know which monitoring tool to use afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Input data for the automation matching its endpoint trigger schema | |
| route_name | Yes | The API route name of the automation to trigger (use route_name from get_workflows or get_automations) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false and destructiveHint=true, covering mutation safety. The description adds context that the response type (job vs session) depends on component_type and specifies which monitoring tool to use, which is useful beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a single opening sentence, two bullet-like lines for response types, and a final discovery instruction. Every sentence serves a purpose and no unnecessary detail is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers the full workflow: discovering automations, triggering them, and monitoring the result via sibling tools. The output schema is present, and annotations cover side effects, making this description sufficiently complete 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both route_name and data already having descriptive text. The tool description only reiterates the route_name origin and does not add new semantic details about the parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Trigger an automation via its Operations Manager endpoint' and clearly states it executes any automation (workflow or agent), distinguishing it from sibling monitoring tools like describe_job and describe_session. It explicitly identifies the resource (automations) and the action (trigger).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage pattern: use get_automations first to learn component_type, then trigger, then monitor via describe_job or describe_session depending on the type. However, it does not explicitly state when not to use this tool or how it compares to the sibling start_workflow tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_command_templateUpdate Command TemplateA
Update an existing command template in Itential Platform.
Updates an existing command template with new commands and validation rules. The template must exist in the specified project or global space.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Operating system type (default: empty string) | |
| name | Yes | Name of the command template to update | |
| project | No | Project name containing the template (None for global templates) | |
| commands | Yes | List of commands with their validation rules | |
| pass_rule | No | Pass rule configuration (True=all must pass, False=one must pass) | |
| description | No | Optional description for the template | |
| ignore_warnings | No | Whether to ignore warnings during execution |
Output Schema
| Name | Required | Description |
|---|---|---|
| upsertedId | Yes | ID of upserted document (if any) |
| acknowledged | Yes | Whether the update was acknowledged |
| matchedCount | Yes | Number of documents matched |
| modifiedCount | Yes | Number of documents modified |
| upsertedCount | Yes | Number of documents upserted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, establishing this as a non-destructive mutation. The description adds the prerequisite that the template must exist, but it does not clarify whether updates replace or merge existing commands and validation rules, nor any permission requirements. This is adequate given annotation coverage but lacks richer behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the primary action and followed by scope and prerequisite. There is no redundant information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, an output schema, and annotations covering the operation type, the description covers the essential purpose and existence prerequisite. It omits nuances like whether omitted fields reset to defaults or how commands are merged, but given the schema and output schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all 7 parameters. The description adds minimal extra meaning beyond referencing 'commands and validation rules' and clarifying the project/global scope. Baseline 3 is appropriate since the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Update an existing command template in Itential Platform.' It uses a specific verb and resource, and distinguishes itself from siblings like create_command_template and describe_command_template by focusing on updates to existing templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when updating an existing command template, with the prerequisite that it must exist in the specified project or global space. However, it does not explicitly mention alternatives or when-not-to-use scenarios, missing the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_templateUpdate TemplateA
Update an existing template in Automation Studio.
Updates an existing template with new content including command, template text, and sample data. Only specified fields will be updated; fields not provided will retain their existing values. Templates are used for text processing, configuration generation, and data parsing within automation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Sample data used to test the template | |
| name | Yes | The name of the template to update | |
| command | No | The CLI command to be run on the target device | |
| project | No | The name of the project where this template resides. The available projects can be found using get_projects | |
| template | No | The template text uesd to generate the output |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Sample data used to test the template |
| name | Yes | Template name |
| type | Yes | Template type (textfsm or jinja2) |
| group | Yes | The group the template is currently part of |
| command | Yes | The command send to the device to generate the source text |
| template | Yes | The template used to generate the final output |
| description | No | Template description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait beyond annotations: the partial update semantics that preserves unspecified fields. This is valuable context not provided by the readOnlyHint=false or destructiveHint=false annotations. It also explains the purpose of templates. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. The first sentence front-loads the primary action, the second explains the critical update behavior, and the third provides context. It is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the tool's purpose and behavioral nuances. An output schema exists, so return values needn't be described. The only minor gap is the absence of explicit guidance on when not to use it or how it relates to alternatives like create_command_template, but overall the description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by tying command, template, and data to the update operation and emphasizing that omitted fields retain their existing values, which clarifies parameter behavior beyond the schema field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing template' with a specific verb and resource. It distinguishes itself from create_template by explicitly saying 'existing' and lists the updateable content (command, template text, sample data), which aligns with the sibling tool set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage guidance by explaining partial update behavior: 'Only specified fields will be updated; fields not provided will retain their existing values.' This tells the agent when to use this tool (for patch-like modifications) but does not explicitly name alternatives or exclusion cases, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.14.0- Changed
get_templates1 field changed- added
Output schema / properties / result / descriptionAdded value: +"Response model for template retrieval operations.\n\nRoot model that wraps a list of GetTemplatesElement objects to provide\na standardized response format for template listing operations from\nthe Automation Studio.\n\nThis model follows the Pydantic RootModel pattern to create a response\nthat serializes directly as a list while maintaining type safety and\nvalidation capabilities.\n\nAttributes:\n root (List[GetTemplatesElement]): List of template elements containing\n template metadata and attributes."
6 tool updates
v0.13.3- Added
describe_session_token_usage - Added
export_gateway_configuration - Added
get_agent_session_token_usage - Added
get_agent_token_usage - Changed
get_sessions3 fields changed- changed
Output schema / properties / result / items / descriptionPrevious value: -"Represents a single agent session from the AgentSessionManager.\n\nSessions are created when an agent automation is triggered via an endpoint\ntrigger. This lightweight list-view model surfaces the fields most useful\nfor scanning recent sessions; use describe_session for the full event log\nand output text.\n\nAttributes:\n session_id: Unique session identifier (use with describe_session).\n agent_name: Name of the agent that ran.\n status: Session status (RUNNING, COMPLETE, FAILED).\n started_at: ISO 8601 start timestamp.\n end_time: ISO 8601 end timestamp (None if still running).\n duration_ms: Total session duration in milliseconds."New value: +"Represents a single agent session from the AgentSessionManager.\n\nSessions are created when an agent automation is triggered via an endpoint\ntrigger. This lightweight list-view model surfaces the fields most useful\nfor scanning recent sessions; use describe_session for the full event log\nand output text.\n\nAttributes:\n session_id: Unique session identifier (use with describe_session).\n agent_name: Name of the agent that ran.\n status: Session status (RUNNING, COMPLETE, FAILED).\n started_at: ISO 8601 start timestamp.\n end_time: ISO 8601 end timestamp (None if still running).\n duration_ms: Total session duration in milliseconds.\n total_input_tokens: Total input (prompt) tokens consumed by the session.\n total_output_tokens: Total output (completion) tokens produced by the\n session." - added
Output schema / properties / result / items / properties / total_input_tokensAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Total input (prompt) tokens consumed by the session; None if\nnot reported by the platform" +} - added
Output schema / properties / result / items / properties / total_output_tokensAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Total output (completion) tokens produced by the session;\nNone if not reported by the platform" +}
- Added
import_gateway_configuration
71 tool updates
v0.1.0- First observed
add_devices_to_group - First observed
add_golden_config_node - First observed
add_nodes_to_inventory - First observed
apply_device_configuration - First observed
backup_device_configuration - First observed
create_command_template - First observed
create_device_group - First observed
create_golden_config_tree - First observed
create_integration_model - First observed
create_inventory - First observed
create_resource - First observed
create_template - First observed
delete_inventory - First observed
describe_command_template - First observed
describe_compliance_report - First observed
describe_instance - First observed
describe_inventory - First observed
describe_job - First observed
describe_project - First observed
describe_resource - First observed
describe_session - First observed
describe_template - First observed
expose_agent - First observed
expose_workflow - First observed
get_action_executions - First observed
get_adapters - First observed
get_agents - First observed
get_applications - First observed
get_automations - First observed
get_command_templates - First observed
get_compliance_plans - First observed
get_device_configuration - First observed
get_device_groups - First observed
get_devices - First observed
get_gateways - First observed
get_golden_config_trees - First observed
get_health - First observed
get_instances - First observed
get_integration_models - First observed
get_integrations - First observed
get_inventories - First observed
get_job_metrics - First observed
get_job_metrics_for_workflow - First observed
get_jobs - First observed
get_projects - First observed
get_resources - First observed
get_services - First observed
get_sessions - First observed
get_task_metrics - First observed
get_task_metrics_for_app - First observed
get_task_metrics_for_task - First observed
get_task_metrics_for_workflow - First observed
get_templates - First observed
get_workflows - First observed
remove_devices_from_group - First observed
render_template - First observed
restart_adapter - First observed
restart_application - First observed
run_action - First observed
run_command - First observed
run_command_template - First observed
run_compliance_plan - First observed
run_service - First observed
start_adapter - First observed
start_application - First observed
start_workflow - First observed
stop_adapter - First observed
stop_application - First observed
trigger_automation - First observed
update_command_template - First observed
update_template
TDQS
Several tools have unclear boundaries. get_gateways and get_services have identical descriptions, and start_workflow is explicitly a wrapper around trigger_automation, causing redundancy. Multiple run_* tools (run_service, run_action, run_command, run_command_template) also have overlapping semantics that could lead to misselection.
Most tools use a verb_noun pattern (get_, create_, run_), but conventions are mixed: detail retrievals sometimes use describe_ and sometimes get_ (e.g., get_device_configuration vs describe_inventory). Execution verbs are inconsistent (run_, start_, trigger_), and some names are verbose and asymmetric (describe_session_token_usage vs get_agent_session_token_usage).
With 76 tools, the server is extremely over-scoped. This far exceeds typical MCP servers and even the broad platform it targets, overwhelming agents and increasing the chance of selecting the wrong tool. The count is not well-calibrated for usability.
The tool set covers a wide range of platform capabilities, but many entity types lack lifecycle operations. For example, device groups, command templates, golden config trees, templates, and resources all have create/read/run but no update or delete, leaving notable gaps in management workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that enables LLMs to retrieve structured network information, including routing, interfaces, MPLS, and topology, from devices using gNMI and OpenConfig models. It facilitates real-time network analysis, log filtering, and status monitoring through a standardized interface.1014BSD 3-Clause
- AlicenseNot gradedqualityAmaintenanceAn MCP server that allows LLMs to create, configure, validate, and explain Cisco Packet Tracer network topologies. It provides a comprehensive suite of tools for generating deployment scripts, CLI configurations, and automated network troubleshooting.153MIT
- FlicenseAqualityFmaintenanceAn MCP server that integrates Nornir with NAPALM and Netmiko, enabling LLMs to orchestrate multi-vendor network infrastructure through natural language.52-
- AlicenseNot gradedqualityDmaintenanceMCP 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/itential/itential-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server