Labs64/NetLicensing-MCP
The Labs64/NetLicensing-MCP server provides a natural language interface for AI agents to manage software licensing, customers, and entitlements through the Labs64 NetLicensing platform.
Product Management β Create, list, update, and delete products with settings like auto-creation, VAT modes, and secret modes.
Module Management β Manage product modules with various licensing models (TryAndBuy, Subscription, Rental, Floating, MultiFeature, PayPerUse, PricingTable, Quota, NodeLocked).
License Template Management β Create and configure license templates with types (FEATURE, TIMEVOLUME, FLOATING, QUANTITY), pricing, duration, and visibility options.
Customer (Licensee) Management β Create, update, and delete customers; validate their licenses; transfer licenses between customers.
License Management β Assign, update (activate/deactivate), and delete individual licenses for customers.
Bundle Management β Create and manage bundles of license templates; obtain bundles to automatically issue multiple licenses to customers.
Token Management β Generate NetLicensing Shop URLs for customer self-service, create scoped API tokens, and revoke tokens.
Transaction Management β Create, list, update, and track transactions (CANCELLED, CLOSED, PENDING).
Payment Method Management β List, retrieve, and update payment method configurations (e.g., PayPal).
Audit & Monitoring β Built-in prompts for account audits, expiry sweeps, anomaly detection, and cleanup workflows.
Utility Functions β List supported licensing models, license types, and countries for VAT/localization.
Safe Operations β All delete operations include an optional force_cascade flag to prevent accidental cascaded data loss.
Flexible Deployment β Supports stdio mode (Claude Desktop, VS Code) and HTTP mode for remote/shared deployments, with a demo mode available using NetLicensing's sandbox (no API key required).
NetLicensing MCP Server
The official Labs64 NetLicensing MCP Server β a natural language interface that lets AI agents manage software licenses, customers, and entitlements through conversational commands.
Works with Claude Desktop, GitHub Copilot (Agent mode), VS Code, JetBrains / IntelliJ IDEA, and any other MCP-compatible client.
Why use this?
Natural Language Licensing β Ask your AI assistant to create products, issue licenses, validate entitlements, and generate shop URLs without touching the NetLicensing UI or writing API calls.
Full API coverage β Various tools spanning the entire NetLicensing REST API: products, modules, templates, licensees, licenses, bundles, tokens, transactions, and payment methods.
Built-in audit prompts β Five ready-to-run prompt templates for account audits, expiry sweeps, anomaly detection, and cleanup workflows.
Safe by default β All delete operations expose a
force_cascadeoption; nothing is silently cascaded.Zero-dependency quick start β Run with
uvxor Docker without a local Python install.
Related MCP server: Enterprise License Manager API
What can you ask?
Once connected, you can talk to NetLicensing in plain language:
"List all products in my NetLicensing account."
"Create a new licensee for
customer@example.comunder product PTEST.""Validate the license for licensee L001 β does it pass?"
"Generate a shop URL for licensee L001 so they can self-serve their renewal."
"Which licenses are expiring in the next 30 days?"
"Find any licensees with no active licenses β flag them for cleanup."
"Transfer all licenses from licensee L001 to L002."
"Create an API key token scoped to read-only access."
"Show me all transactions from the last month."
Features
Area | Tools |
Products | list, get, create, update, delete |
Product Modules | list, get, create, update, delete |
License Templates | list, get, create, update, delete |
Licensees | list, get, create, update, delete, validate, transfer |
Licenses | list, get, create, update (activate/deactivate), delete |
Bundles | list, get, create, update, delete, obtain |
Tokens | list, get, create shop URL, create API token, revoke |
Transactions | list, get, create, update |
Payment Methods | list, get, update |
Utilities | list licensing models, list license types |
Audit Prompts | full account, single customer, expiry sweep, cleanup, anomaly detection |
Delete Safety |
|
Redaction | secrets ( |
Security defaults
The server is designed to be safe by default:
No silent credential fallback β if
NETLICENSING_API_KEYis not set andNETLICENSING_ALLOW_DEMOis not explicitly enabled, the server refuses to start (stdio) or returns503(HTTP) rather than silently using demo credentials.Redaction layer β every tool response passes through a redaction filter. Sensitive fields (
apiKey,licenseeSecret,nodeSecret,password,secret) are masked to a partial form (e.g.s3c****ecret). The set is extendable viaMCP_REDACT_FIELDS.One-time credentials β
create_api_tokenandcreate_shop_tokentag their response with"shown_once": trueso clients know the credential will not be visible in full again. Subsequentget_token/list_tokenscalls return masked values.Delete confirmation β all destructive operations require a two-step confirmation token flow; nothing is silently cascaded.
Quick Start
Option A β uvx (no install required)
NETLICENSING_API_KEY=your_key uvx netlicensing-mcpOption B β pip
pip install netlicensing-mcp
NETLICENSING_API_KEY=your_key netlicensing-mcpOption C β Docker
stdio (default) β for Claude Desktop / VS Code
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latestHTTP mode β for remote/shared deployments
docker run -d -p 8000:8000 \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latest httpVerbose logging (any mode)
# CLI flag
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latest -v
# Or via env var
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
-e MCP_VERBOSE=true \
ghcr.io/labs64/netlicensing-mcp:latestDemo / sandbox mode (no API key)
docker run -i --rm \
-e NETLICENSING_ALLOW_DEMO=true \
ghcr.io/labs64/netlicensing-mcp:latestNo API key? Set
NETLICENSING_ALLOW_DEMO=trueto run against NetLicensing's built-in sandbox with demo credentials β no account required. The server will tag every response with"demo_mode": trueand emit a periodic warning so it is always clear you are not using a real account.
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes* | β | NetLicensing API key. Required unless |
| No |
| Set to |
| No |
| Override the NetLicensing REST API base URL (e.g. for on-prem deployments). |
| No |
| Transport mode: |
| No |
| Host address to bind the HTTP server (HTTP mode only). |
| No |
| Port to bind the HTTP server (HTTP mode only). |
| No |
| Enable verbose debug logging ( |
| No | β | Comma-separated list of additional field names to redact from all tool responses and log output (e.g. |
*
NETLICENSING_API_KEYand demo mode: If neitherNETLICENSING_API_KEYnorNETLICENSING_ALLOW_DEMO=trueis set, the server will refuse to start (stdio mode) or return503 Service Unavailablefor all tool calls (HTTP mode). This prevents accidental use of demo credentials in production.
Note on HTTP deployments (e.g. AWS): When running in HTTP mode over a network, you can skip setting
NETLICENSING_API_KEYon the server. The MCP server will automatically extract the key per-request if the connecting client provides it via theX-NetLicensing-API-KeyHTTP header,Authorization: Bearer <key>header, or?apikey=<key>query parameter.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"netlicensing": {
"command": "uvx",
"args": ["netlicensing-mcp"],
"env": {
"NETLICENSING_API_KEY": "your_key_here"
}
}
}
}Or use the official Docker image:
stdio (default) β for Claude Desktop / VS Code
{
"mcpServers": {
"netlicensing": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "NETLICENSING_API_KEY=your_key_here",
"ghcr.io/labs64/netlicensing-mcp:latest"
]
}
}
}HTTP mode β for remote/shared deployments
{
"mcpServers": {
"netlicensing": {
"command": "docker",
"args": [
"run", "-d",
"-p", "8000:8000",
"-e", "NETLICENSING_API_KEY=your_key_here",
"ghcr.io/labs64/netlicensing-mcp:latest",
"http"
]
}
}
}VS Code / GitHub Copilot
The repo ships a .vscode/mcp.json that auto-configures Copilot Agent mode.
Set NETLICENSING_API_KEY in your shell environment or a .env file, then click
Start in the editor banner that appears above mcp.json.
JetBrains / IntelliJ IDEA
In Copilot Chat β Agent mode β Tools icon β Add More Toolsβ¦ β paste the same JSON block shown in the Claude Desktop section above.
Audit Prompt Templates
Five built-in prompts accessible in Copilot Agent and Claude Desktop:
Prompt | Purpose |
| End-to-end account audit for a product |
| Deep-dive on a single licensee |
| Find licenses expiring within N days and generate renewal URLs |
| Identify inactive / orphaned licenses for cleanup |
| Detect unusual usage patterns across all customers |
Troubleshooting
Check MCP server logs
# macOS / Claude Desktop
tail -f ~/Library/Logs/Claude/mcp-server-netlicensing.log
# Windows
Get-Content "$env:APPDATA\Claude\Logs\mcp-server-netlicensing.log" -WaitRun the MCP Inspector (browser UI at http://localhost:5173)
mcp dev src/netlicensing_mcp/server.pyCommon issues
Symptom | Likely cause | Fix |
| Invalid or expired API key | Regenerate your key at ui.netlicensing.io |
Server not listed in Claude | Config file JSON syntax error | Validate with |
|
|
|
Server exits immediately / |
| Set |
Demo data instead of live data |
| Ensure |
Development
git clone https://github.com/Labs64/NetLicensing-MCP
cd NetLicensing-MCP
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# ... and install dependencies
pip install -e ".[dev]"
pip install hatch hatch-vcs
# Add your API key to a .env file (or export it in your shell)
cp .env.example .env
# Run the MCP Inspector
mcp dev src/netlicensing_mcp/server.py
# Run tests
pytest tests/ -v
# Clean previous builds
rm -rf dist/
# Build a wheel for local testing
hatch build --target wheel
# Build the Docker image locally
docker build -t ghcr.io/labs64/netlicensing-mcp:latest .HTTP mode (for remote / shared deployments)
python -m netlicensing_mcp.server http
# Server listens on MCP_HOST:MCP_PORT (default: 127.0.0.1:8000)Use ngrok or a reverse proxy to expose the HTTP endpoint to remote MCP clients:
ngrok http 8000
# Then point your client at the generated HTTPS URLCloud Deployment (AWS)
Deploy the MCP server to AWS for a public HTTPS endpoint that remote AI agents can connect to:
Option | Best for | Scale-to-zero | Setup |
ECS Fargate | Production, consistent traffic | No | ALB + Fargate |
App Runner | Low-traffic, development | β Yes | Auto-provisioned HTTPS |
Quick deploy with the helper script
cd deploy/aws
# Option A β ECS Fargate
# Deploy (with optional HTTPS via ACM certificate)
./deploy.sh fargate \
--certificate-arn arn:aws:acm:us-east-1:123456789:certificate/your-cert-id
# Option B β App Runner (mirror image to ECR first)
./deploy.sh mirror --ecr-repo 123456789.dkr.ecr.us-east-1.amazonaws.com/netlicensing-mcp
./deploy.sh apprunner \
--ecr-image 123456789.dkr.ecr.us-east-1.amazonaws.com/netlicensing-mcp:latestConnect MCP clients to the public URL
To use a shared, remote deployment, do not bake the NETLICENSING_API_KEY into the remote server settings. Instead, pass the API key from the client side using query parameters or HTTP headers.
For example, using the URL configuration in your MCP client with a query parameter:
{
"mcpServers": {
"netlicensing": {
"url": "https://your-endpoint.us-east-1.elb.amazonaws.com/mcp?apikey=YOUR_API_KEY"
}
}
}If you use a client or tool that supports passing HTTP headers directly, you can alternatively provide the key via X-NetLicensing-API-Key: YOUR_API_KEY or Authorization: Bearer YOUR_API_KEY.
π Full instructions, architecture diagrams, and cost estimates: deploy/aws/README.md
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
For significant changes, open an issue first to discuss the approach.
License
Apache 2.0 β see LICENSE
Available Tools
48 toolsnetlicensing_create_api_tokenA
Create a scoped API token.
Args: api_key_role: ROLE_APIKEY_LICENSEE | ROLE_APIKEY_ANALYTICS | ROLE_APIKEY_OPERATION | ROLE_APIKEY_MAINTENANCE | ROLE_APIKEY_ADMIN licensee_number: Optional β scope token to a specific licensee
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_role | No | ROLE_APIKEY_LICENSEE | |
| licensee_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must carry the burden. It mentions 'scoped' and lists role options and optional licensee scoping, adding some context beyond the bare schema. However, it does not disclose permissions needed, side effects, or token management (e.g., revocability).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose, followed by a clean args list. No redundant sentences, but the args formatting could be more structured with distinct sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 2-parameter creation tool with an output schema, the description covers the core purpose and parameter semantics adequately. No missing critical information given the 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 has 0% description coverage; the description lists the two parameters, provides possible values for api_key_role, and explains licensee_number's purpose ('scope token to a specific licensee'), adding meaning beyond the schema. Missing explanations of each role's effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 scoped API token' with the verb 'Create' and resource 'API token', distinguishing it from sibling tools that create other entities (license, bundle, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other create tools (e.g., netlicensing_create_shop_token), nor any conditions or scenarios for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_bundleA
Create a new bundle grouping one or more license templates.
Args: number: Unique bundle number (e.g. 'B001') name: Human-readable bundle name license_template_numbers: List of license template numbers included in the bundle active: Whether the bundle is active price: Optional bundle price currency: ISO 4217 currency code (e.g. EUR, USD β leave empty for account default) description: Optional bundle description
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | ||
| name | Yes | ||
| license_template_numbers | Yes | ||
| active | No | ||
| price | No | ||
| currency | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as side effects, authorization needs, or behavior if the bundle already exists. Only parameter descriptions are given.
Agents need to know what a tool does to the 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, using a clear heading and a bullet-like list for parameters. Every sentence adds value, and it is front-loaded with the purpose. 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?
While parameter semantics are covered, the description lacks behavioral transparency and usage context. For a create tool with 7 parameters and an output schema, it adequately explains what each parameter does but does not address when to use or potential side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema for each parameter, including examples ('B001'), constraints ('ISO 4217 currency code'), and defaults ('leave empty for account default'). This compensates for the 0% schema description 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 'Create a new bundle grouping one or more license templates,' specifying the verb 'create' and the resource 'bundle' with its grouping purpose. This distinguishes it from sibling tools that create other entities like license, licensee, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for creating bundles but lacks prerequisites, exclusions, or comparisons with other create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_licenseA
Assign a new license to a customer from a license template.
Args: licensee_number: Customer to assign the license to license_template_number: Template defining type and rules number: Optional custom license number (auto-generated if empty) active: Whether the license is active immediately name: Display name (defaults from template if empty) start_date: ISO 8601 datetime β mandatory for TIMEVOLUME type price: License price (overrides template default, omit to inherit) currency: ISO 4217 currency code (overrides template default) time_volume: Duration value β mandatory for TIMEVOLUME type time_volume_period: DAY | WEEK | MONTH | YEAR (TIMEVOLUME type) quantity: Usage quota β mandatory for PayPerUse / NodeLocked models parent_feature: Parent feature β mandatory for TIMEVOLUME + Rental model hidden: Hide license from end customer in Shop (omit to inherit)
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| license_template_number | Yes | ||
| number | No | ||
| active | No | ||
| name | No | ||
| start_date | No | ||
| price | No | ||
| currency | No | ||
| time_volume | No | ||
| time_volume_period | No | ||
| quantity | No | ||
| parent_feature | No | ||
| hidden | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses creation intent and conditional mandatory parameters, but omits behavioral traits like whether the operation is idempotent, if it modifies other resources, requires authentication, or triggers notifications. This is insufficient for a write 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 front-loaded with a clear purpose sentence, followed by a well-structured list of parameters. Each line is concise. While slightly long (13 lines), it avoids fluff and uses a consistent format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity (13 parameters, 2 required), the description covers most parameters with context. However, it lacks details on error conditions, output (though output schema exists), and global prerequisites. Overall adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. 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 0% coverage, so the description compensates well. It explains each parameter's purpose (e.g., 'licensee_number: Customer to assign the license to') and notes conditions (e.g., start_date mandatory for TIMEVOLUME type). This adds significant value beyond the schema's bare property list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Assign a new license to a customer from a license template.' It includes a specific verb ('assign') and identifies the key resources (customer, license template). This distinguishes it from sibling tools like 'create_licensee' or 'create_license_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 provides no explicit guidance on when to use this tool versus alternatives like 'netlicensing_update_license' or 'netlicensing_create_bundle'. It implies use when assigning a new license, but fails to mention exclusions or prerequisites (e.g., ensure customer and template exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_licenseeA
Create a new customer (licensee) under a product.
Args: product_number: Product to associate the customer with number: Optional custom licensee number (auto-generated if empty) name: Optional display name for the customer active: Whether the licensee is active marked_for_transfer: Mark licensee for license transfer licensee_secret: Secret for licensee identification (when product licenseeSecretMode is PREDEFINED)
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| number | No | ||
| name | No | ||
| active | No | ||
| marked_for_transfer | No | ||
| licensee_secret | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses conditional behavior for licensee_secret (when product mode is PREDEFINED), but does not mention safety profile (write operation), side effects, authentication needs, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear first sentence and bullet-like parameter explanations. However, the parameter descriptions could be more structured (e.g., table or list) for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are explained, but missing information on prerequisites (e.g., product must exist), error scenarios (e.g., duplicate number), and return value (though output schema may cover it). Adequate but not comprehensive for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides meaning for all 6 parameters, including purpose for product_number, auto-generation for number, conditional usage of licensee_secret, etc. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new customer (licensee) under a product,' specifying the verb (create), resource (customer/licensee), and context (under a product). This effectively distinguishes it from sibling update tools like netlicensing_update_licensee.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 creation, but does not explicitly state when to use it versus alternatives, mention prerequisites (e.g., product must exist), or provide when-not-to-use guidance. No explicit exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_license_templateB
Create a license template.
Args: module_number: Parent product module number: Unique template number (e.g. 'LT01') name: Template display name license_type: FEATURE | TIMEVOLUME | FLOATING | QUANTITY price: Template price (0 for free) currency: ISO 4217 currency code (default EUR) automatic: Auto-assign this license to new licensees hidden: Hide template in NetLicensing Shop hide_licenses: Hide licenses derived from this template in the Shop active: Whether the template is active time_volume: Number of time units (TIMEVOLUME type) time_volume_period: DAY | WEEK | MONTH | YEAR (TIMEVOLUME type) max_sessions: Concurrent sessions allowed (FLOATING type) quantity: Usage quota (QUANTITY / PayPerUse type) grace_period: Allow grace period after expiry (Subscription model)
| Name | Required | Description | Default |
|---|---|---|---|
| module_number | Yes | ||
| number | Yes | ||
| name | Yes | ||
| license_type | Yes | ||
| price | No | ||
| currency | No | EUR | |
| automatic | No | ||
| hidden | No | ||
| hide_licenses | No | ||
| active | No | ||
| time_volume | No | ||
| time_volume_period | No | ||
| max_sessions | No | ||
| quantity | No | ||
| grace_period | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention what happens upon creation (e.g., immediate activation, any side effects like automatic assignment), authentication requirements, or whether the template is immediately available. The description is purely parameter-focused without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose sentence, then lists parameters. It is structured but lengthy (15 lines for parameters). Some redundancy with the schema exists, but since schema has no descriptions, the list is necessary. It could be more concise by grouping related parameters (e.g., time_volume and time_volume_period).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high parameter count (15) and lack of annotations, the description covers parameter semantics decently but lacks behavioral context. It does not explain return values (despite an output schema existing) or error conditions. For a complex creation tool, more contextual information about the created object's state would be helpful.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It provides explanations for all 15 parameters, though some are brief (e.g., 'automatic: Auto-assign this license to new licensees'). It clarifies types and defaults (e.g., price default 0, currency default EUR). However, some descriptions are almost tautological (e.g., 'active: Whether the template is active').
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Create a license template.' It lists specific parameters like module_number, number, name, license_type, etc., and the purpose is distinct from sibling tools (e.g., netlicensing_create_license which creates a license for a licensee, not a 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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., product module must exist) or scenarios where another tool (like update_license_template) would be more appropriate. Sibling tools like netlicensing_create_license, netlicensing_create_product_module are present but no differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_productB
Create a new product.
Args: number: Unique product number (e.g. 'P001') name: Human-readable product name version: Product version string active: Whether the product is active description: Optional product description licensing_info: Optional licensing information displayed in the shop licensee_auto_create: Auto-create licensees on first validation attempt vat_mode: GROSS or NET (leave empty to use account default) licensee_secret_mode: DISABLED, PREDEFINED, or CLIENT (leave empty for default)
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | ||
| name | Yes | ||
| version | No | 1.0 | |
| active | No | ||
| description | No | ||
| licensing_info | No | ||
| licensee_auto_create | No | ||
| vat_mode | No | ||
| licensee_secret_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details such as side effects, idempotency, authentication requirements, or rate limits. It only describes parameters.
Agents need to know what a tool does to the 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 a clear purpose but uses a verbose docstring format with an 'Args' list. Could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not required to explain returns) and 9 parameters covered, the description is fairly complete. However, it could mention typical usage context (e.g., when to set vat_mode).
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It provides inline parameter meanings, examples (e.g., 'P001'), and valid values (e.g., GROSS/NET for vat_mode), adding significant value beyond the bare 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 product.' with a specific verb and resource. Among sibling create tools, it uniquely identifies product creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other create tools or alternatives. The description purely lists parameters without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_product_moduleA
Create a product module with a licensing model.
Args: product_number: Parent product number: Unique module number (e.g. 'M01') name: Module name licensing_model: One of: TryAndBuy, Subscription, Rental, Floating, MultiFeature, PayPerUse, PricingTable, Quota, NodeLocked active: Whether the module is active max_checkout_validity: Maximum checkout validity in days (Floating model) yellow_threshold: Remaining time volume for yellow warning (Rental model) red_threshold: Remaining time volume for red warning (Rental model) node_secret_mode: PREDEFINED or CLIENT (NodeLocked model)
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| number | Yes | ||
| name | Yes | ||
| licensing_model | Yes | ||
| active | No | ||
| max_checkout_validity | No | ||
| yellow_threshold | No | ||
| red_threshold | No | ||
| node_secret_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. However, it focuses entirely on parameter explanations and does not mention side effects (e.g., creation is destructive), authentication needs, rate limits, or return value structure. The description lacks behavioral context beyond basic parameter defaults.
Agents need to know what a tool does to the 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 with a brief opening sentence followed by a bullet-like parameter list. It is concise for 9 parameters, though the Args section could be slightly tightened. Overall, 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?
Given the complexity (9 parameters, model-specific behavior) and the presence of an output schema (so return values are not needed), the description covers parameter semantics thoroughly but omits behavioral context, usage guidelines, and error conditions. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter's purpose, valid values (e.g., explicit list of licensing models), and model-specific constraints (e.g., max_checkout_validity for Floating, thresholds for Rental, node_secret_mode for NodeLocked). This adds substantial meaning beyond the schema's bare titles and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Create a product module with a licensing model.' This specifies the verb (create), the resource (product module), and a key distinguishing attribute (licensing model). It effectively differentiates from sibling create tools like netlicensing_create_license or netlicensing_create_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor does it mention prerequisites or when not to use it. It only lists parameters, leaving the agent to infer usage context from the tool's name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_shop_tokenB
Generate a NetLicensing Shop one-time checkout URL for a customer.
Args: licensee_number: Customer to generate the shop URL for product_number: Optional β scope shop to a specific product license_template_number: Optional β pre-select a specific license template success_url: Optional URL to redirect to after successful purchase cancel_url: Optional URL to redirect to if customer cancels success_url_title: Optional button/link label for success redirect cancel_url_title: Optional button/link label for cancel redirect
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| product_number | No | ||
| license_template_number | No | ||
| success_url | No | ||
| cancel_url | No | ||
| success_url_title | No | ||
| cancel_url_title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool generates a checkout URL but omits behavioral details such as whether the action is idempotent, side effects, authentication needs, or rate limits. The description is too minimal for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, starting with the purpose. It lists parameters in a readable format. However, it could be more structured (e.g., grouping optional params) and front-loads only the first sentence. Overall efficient but not maximally 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?
Given the tool's complexity (7 parameters, 1 required) and the existence of an output schema (as per context signals), the description does not mention what the tool returns (e.g., token, URL, expiration). While the output schema may cover this, the description should at least hint at the response. It is adequate but incomplete for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists each parameter and adds limited context (e.g., 'Customer to generate the shop URL for' for licensee_number, 'Optional URL to redirect to after successful purchase' for success_url). However, many parameters (e.g., cancel_url_title) only restate the name. This provides partial but not full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a 'NetLicensing Shop one-time checkout URL for a customer,' which is a specific verb (generate) and resource (shop URL). It distinguishes from sibling tools like netlicensing_create_api_token or netlicensing_create_license, which have different 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?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is specifically for one-time checkout URLs, nor does it exclude other methods. No explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_create_transactionB
Create a new transaction.
Args: status: CANCELLED | CLOSED | PENDING source: Transaction source β SHOP or AUTO (default SHOP) licensee_number: Optional β associated licensee number: Optional custom transaction number (auto-generated if empty) name: Optional human-readable transaction name active: Whether the transaction is active date_created: Optional ISO 8601 creation timestamp date_closed: Optional ISO 8601 close timestamp payment_method: Optional payment method number
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| source | No | SHOP | |
| licensee_number | No | ||
| number | No | ||
| name | No | ||
| active | No | ||
| date_created | No | ||
| date_closed | No | ||
| payment_method | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behavioral traits such as side effects, auth requirements, rate limits, or what happens upon creation. The tool's behavior beyond parameter values is completely opaque.
Agents need to know what a tool does to the 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, using a bullet list format with no redundant information. Every sentence adds value for parameter understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the parameter details are covered, the description lacks broader context: no usage guidance, no behavioral traits, and no mention of the output despite an existing output schema. The tool's role in the transaction lifecycle is not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to all 9 parameters beyond the schema (e.g., enum values for status, explanation of source), compensating for the 0% schema description coverage. However, it does not describe the return value or output 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 explicitly states 'Create a new transaction.' with a clear verb and resource, and it is distinguished from sibling tools like netlicensing_list_transactions and netlicensing_update_transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., update_transaction for modifications). The description only lists parameters without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_bundleA
Delete a bundle permanently.
Args: bundle_number: Bundle to delete force_cascade: Force deletion even if dependencies exist
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states 'permanently' and explains force_cascade for dependencies, which is useful. However, it omits details about auth requirements, irreversibility side effects, or error conditions, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (three lines) and front-loaded with the core purpose. Every sentence adds value, with no redundant information. Perfect structure for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and only two parameters (one required), the description is largely sufficient. It covers the input semantics and basic behavior. However, it could mention what happens to related entities (e.g., licenses using the bundle) or the return value format, but the output schema mitigates the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains bundle_number as 'Bundle to delete' and force_cascade as 'Force deletion even if dependencies exist', adding meaning beyond the schema's titles and types. This is helpful, though more details like data format or validation would improve 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 'Delete a bundle permanently' clearly states the action (delete) and resource (bundle), distinguishing it from sibling tools like get_bundle, create_bundle, or list_bundles. The verb 'delete' 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 explains the parameters but does not explicitly state when to use this tool versus alternatives like netlicensing_get_bundle or netlicensing_obtain_bundle. It implies permanent deletion but lacks guidance on prerequisites or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_licenseA
Delete a license permanently.
Args: license_number: License to delete force_cascade: Force deletion even if dependencies exist
| Name | Required | Description | Default |
|---|---|---|---|
| license_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It states the permanent nature and mentions the force_cascade parameter, but lacks details on authorization needs or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with no wasted words, front-loading the purpose and clearly listing arguments in a structured format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with two parameters and an output schema, the description covers the essential behavior and options, though it omits details about return values or failure modes.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so description must compensate. It adds brief explanations for each parameter ('License to delete', 'Force deletion even if dependencies exist'), which adds value but could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Delete a license permanently' which specifies the verb (delete) and resource (license), distinguishing it from sibling tools like delete_bundle or delete_licensee.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to favor other deletion tools. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_licenseeA
Delete a licensee and all their licenses permanently.
Args: licensee_number: Licensee to delete force_cascade: Also delete all dependent licenses
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses permanence and cascading behavior (via force_cascade), but does not mention authorization, reversibility, or side effects when force_cascade is false.
Agents need to know what a tool does to the 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: a single sentence followed by a clear argument list. Every sentence provides value, and the main purpose is upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavior for a delete tool, and an output schema exists so return values are not needed. However, it does not clarify what happens when force_cascade is false and dependent licenses exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by explaining each parameter: licensee_number identifies the target, and force_cascade controls deletion of dependent licenses. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('a licensee and all their licenses permanently'), clearly distinguishing it from sibling delete tools like delete_license or delete_bundle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., other delete tools or update tools). No prerequisites or contextual hints provided about when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_license_templateB
Delete a license template.
Args: template_number: Template to delete force_cascade: Also delete all dependent licenses
| Name | Required | Description | Default |
|---|---|---|---|
| template_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a destructive action ('delete') and that force_cascade can delete dependents, but lacks details on irreversibility, authorization requirements, or success/error responses. With no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus bullet-style args. Every word earns its place; 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 simple delete tool with an output schema (so return format need not be described), the description covers the basic operation and the force_cascade option. However, it omits potential error states (e.g., what happens if force_cascade=false and dependents exist) and usage 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 0%, so the description must add meaning. It explains both parameters: 'Template to delete' and 'Also delete all dependent licenses', which clarifies their roles beyond the schema's types and 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 'Delete a license template', which is a specific verb-resource pair. It differentiates from sibling tools that delete other resources (e.g., netlicensing_delete_license) by naming the resource explicitly, but does not elaborate on scope or side effects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., netlicensing_delete_license, netlicensing_delete_bundle). There is no mention of prerequisites, when not to use, or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_productB
Delete a product permanently.
Args: product_number: Product to delete force_cascade: Also delete all dependent modules, templates, licensees, and licenses
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'permanently' to indicate irreversibility and explains the force_cascade parameter's effect on dependencies. However, it lacks details on authorization needs or what happens if force_cascade is false and dependencies exist (likely failure).
Agents need to know what a tool does to the 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 lines, highly concise with zero wasted words. It front-loads the core action ('Delete a product permanently') and then lists parameters. This is appropriate for a straightforward delete 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?
Given the tool's low complexity (2 params, simple delete) and the presence of an output schema, the description is mostly adequate. However, it fails to mention error conditions (e.g., deletion failure due to dependencies without cascade) or prerequisites (product must exist). Slightly incomplete for a confident agent 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?
Input schema has 0% description coverage, so the description must compensate. It explains product_number as 'Product to delete' (minimal but clear) and force_cascade as 'Also delete all dependent modules, templates, licensees, and licenses' (good semantic value). However, it does not specify the format of product_number (e.g., ID pattern).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Delete a product permanently', which is a specific verb+resource. It distinguishes the tool from other delete actions like netlicensing_delete_bundle or netlicensing_delete_license. However, it could be more explicit about the scope of deletion (e.g., only the product metadata vs. all linked 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 guidance on when to use this tool versus alternatives (e.g., netlicensing_update_product to deactivate). It also does not explain when to set force_cascade to true versus false, or mention prerequisites such as the product existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_product_moduleA
Delete a product module.
Args: module_number: Module to delete force_cascade: Also delete all dependent license templates and licenses
| Name | Required | Description | Default |
|---|---|---|---|
| module_number | Yes | ||
| force_cascade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions the cascade effect ('Also delete all dependent license templates and licenses'), but does not state other traits such as prerequisites (e.g., module must exist), reversibility, or error conditions like what happens if cascade is false but dependents exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a clear structure (purpose statement followed by parameter definitions). Every sentence is necessary 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?
Given that it is a delete tool with two parameters and an output schema (not shown but exists), the description provides enough context for the core operation and cascade effect. However, it lacks details on return values, error handling, or prerequisites, which would make it complete for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% schema description coverage. The description adds value by explaining module_number as 'Module to delete' and force_cascade as 'Also delete all dependent license templates and licenses,' which goes beyond the schema's title and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Delete a product module,' using a specific verb and resource, and it distinguishes the tool from siblings that delete other entities (e.g., netlicensing_delete_license, netlicensing_delete_product).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives or when to set force_cascade to true. While the purpose is clear from the name, the description does not help an agent decide between this and other delete tools or when cascade is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_delete_tokenB
Revoke an API or shop token.
Args: token_number: Token to revoke
| Name | Required | Description | Default |
|---|---|---|---|
| token_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Revoke,' implying a destructive action, but omits authentication needs, side effects, or irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one sentence and a parameter line, 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?
Output schema exists, so return values are covered. However, missing details like error conditions or idempotency make it only adequate for a 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?
Schema coverage is 0%, so the description must compensate. It adds 'Token to revoke' for the token_number parameter, clarifying its role, but no further details on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 revokes 'an API or shop token,' a specific verb and resource. Among siblings, it contrasts with create and get token tools, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives (e.g., delete_token might differ from revoking? No other delete_token sibling exists, but there is no context for prerequisites 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.
netlicensing_get_bundleA
Get details of a specific bundle.
Args: bundle_number: Bundle identifier (e.g. 'B001')
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description does not disclose that this is a read-only operation or any behavioral traits (e.g., idempotency, side effects). It only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear one-liner and an Args section. It is appropriately sized for a simple get operation, though it could be slightly more 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?
The tool has an output schema, so return values need not be described. However, the description lacks any additional context such as error scenarios or prerequisites, which would be helpful given the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, but the description adds an example ('e.g. 'B001'') and a label for bundle_number, which helps the agent understand the parameter format 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 'Get details of a specific bundle', using a specific verb and resource. It distinguishes from sibling tools like netlicensing_list_bundles and netlicensing_obtain_bundle by indicating it retrieves a single bundle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single bundle but does not explicitly state when to use versus alternatives like netlicensing_list_bundles. No exclusion criteria or context for when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_licenseB
Get details of a specific license.
Args: license_number: License identifier
| Name | Required | Description | Default |
|---|---|---|---|
| license_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose any behavioral traits such as error handling, authentication requirements, or return format, which is insufficient for an unannotated 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 very concise but lacks structure or front-loading. It is functional but minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter, the description is somewhat complete but misses context on errors, return values, or usage scenarios.
Complex tools with many parameters or behaviors need more documentation. 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 0%. The description adds 'License identifier' which provides minimal additional meaning over the schema's title 'License Number' and type string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details) and the resource (a specific license), making it distinct from sibling tools like netlicensing_list_licenses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, though the name and context imply it is for retrieving a single license by ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_licenseeB
Get a specific licensee (customer).
Args: licensee_number: Licensee identifier (e.g. 'I001')
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only says 'Get'. Does not disclose read-only nature, error behavior on missing licensee, or any authentication 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?
Extremely concise with only two sentences, no redundant information. Front-loads 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?
Output schema exists, so return values are covered. However, description lacks mention of error cases or additional context about the licensee data retrieved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema by labeling licensee_number as 'Licensee identifier' and providing example 'I001', which is helpful despite 0% schema description 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?
Clearly states 'Get a specific licensee (customer)' which is a specific verb+resource. Distinguishes from list tools but not from other get tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like netlicensing_list_licensees or other get tools. Context of use is not provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_license_templateB
Get a specific license template.
Args: template_number: Template identifier
| Name | Required | Description | Default |
|---|---|---|---|
| template_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the basic operation without explaining what happens if the template doesn't exist, authorization requirements, or any side effects. This is insufficient for safe invocation.
Agents need to know what a tool does to the 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 very concise with two sentences, no redundant information. However, it may be overly brief, lacking important context that could be added without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simplicity of a single-parameter get operation and the presence of an output schema, the description provides the essential purpose and parameter. It does not mention return type or error conditions, but for a trivial tool this is borderline 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 description labels the parameter as 'Template identifier', which adds minimal meaning beyond the parameter name and schema title 'Template Number'. Since schema coverage is 0%, the description should provide more detail about expected values (e.g., format, constraints) but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the action 'Get' and the resource 'specific license template', clearly distinguishing it from sibling tools like 'list' (which returns all) and 'create' (which adds a new 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?
No guidance is provided on when to use this tool versus the many sibling 'get' tools for other entities (e.g., get_license, get_bundle) or when to prefer list over get. The agent is left without context to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_payment_methodC
Get details of a specific payment method.
Args: payment_method_number: Payment method identifier
| Name | Required | Description | Default |
|---|---|---|---|
| payment_method_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only says 'Get details' without explaining if this is read-only, authentication needs, error handling, or what happens if the payment method does not exist. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two lines), which is concise but borders on under-specification. It could be expanded to include parameter details and usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool has an output schema (not shown), the description does not mention what details are returned. For a 'get' operation, it is typical to describe the response structure or key fields. The description is incomplete for the context of this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for parameters. The description adds 'Payment method identifier' for payment_method_number, which offers some meaning but lacks format, examples, or constraints. Given the low coverage, more detail is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details of a specific payment method' clearly states the verb ('Get') and the resource ('payment method'). It distinguishes from sibling tools like list_payment_methods (which returns a list) and update_payment_method (which modifies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that for listing all payment methods, one should use netlicensing_list_payment_methods, nor does it clarify any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_productA
Get details of a specific product.
Args: product_number: Product identifier (e.g. 'P001')
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It only says 'Get details', implying a read operation, but does not disclose authentication needs, error handling (e.g., invalid product_number), idempotency, or rate limits. The minimal description leaves agents guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose and one line for the parameter. It is front-loaded with the core function and uses a structured 'Args' format. 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 simple retrieval tool with one parameter and an output schema, the description covers the essential purpose and parameter. Since an output schema exists, the return value does not need elaboration. Missing context about the product's scope (e.g., full details vs. summary) is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds an explicit explanation of the parameter: 'Product identifier (e.g. 'P001')'. This provides context and an example, which is valuable beyond the schema's property title and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details of a specific product', using a specific verb ('Get') and resource ('product'). It distinguishes from sibling tools like create, delete, update, and list products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., list_products for multiple items, update_product for modifications). The description implies use when you need a single product's details, but no exclusions or comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_product_moduleA
Get a specific product module.
Args: module_number: Module identifier
| Name | Required | Description | Default |
|---|---|---|---|
| module_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It states 'Get' indicating a read operation, but lacks details about authentication requirements, error handling, or data scope. It is adequate but not thorough.
Agents need to know what a tool does to the 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: one for purpose and one for parameter. It is front-loaded, concise, and without any 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?
Given the presence of an output schema (not provided but indicated), the description sufficiently covers the single retrieval operation. No additional context is needed for this straightforward 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 description documents the only parameter 'module_number' as 'Module identifier', adding context beyond the schema's title and type. For a single simple parameter, this is helpful but not extensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a specific product module' with a verb and resource, and the name distinguishes it from siblings like netlicensing_create_product_module and netlicensing_list_product_modules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not or alternative tools are mentioned. The implication from the name and siblings is that this is for retrieving a single module by ID, but no direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_tokenC
Get details of a specific token.
Args: token_number: Token identifier
| Name | Required | Description | Default |
|---|---|---|---|
| token_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details beyond the basic operation. It does not mention whether the operation is read-only, what happens if the token is not found, or any authentication requirements. With no annotations, this gap is significant.
Agents need to know what a tool does to the 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 very concise (two sentences), but at the cost of missing important details. It is not verbose, but could be more informative without becoming lengthy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description could explain that output details are defined there. However, it does not cover error behavior, return format, or how this operation fits into the broader API context. For a simple retrieval, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, token_number, is described as 'Token identifier', which essentially rephrases the schema. With 0% schema description coverage, this adds minimal meaning beyond the schema's type and 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 verb 'Get' and resource 'token', indicating it retrieves token details. It is concise and matches the tool name, but does not explicitly differentiate from the sibling netlicensing_list_tokens, which likely provides a list of tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like netlicensing_list_tokens or other get tools. There is no mention of prerequisites, context, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_get_transactionC
Get details of a specific transaction.
Args: transaction_number: Transaction identifier
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only implies a read operation. It fails to mention idempotency, authentication needs, or lack of side effects, leaving the agent uninformed.
Agents need to know what a tool does to the 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 very short and front-loaded, but its brevity sacrifices necessary detail. It could include more structure (e.g., parameter format) without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not explain return values, but it omits usage context like required permissions or the type of identifier. The tool is simple, yet the description remains incomplete for reliable agent 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 0%. The description adds minimal value by labeling transaction_number as an identifier, which is already clear from the schema title. No format or constraints are specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details of a specific transaction, distinguishing it from list and create/update siblings. However, it is vague about what 'details' encompass, lacking explicit scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like netlicensing_list_transactions or when not to use it. The agent receives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_bundlesB
List all bundles in the NetLicensing account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It states only 'list all bundles' without disclosing any behavioral traits like pagination, rate limits, authentication needs, or side effects. This is insufficient for informed invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is efficiently front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and no parameters, the description is minimally adequate. However, it does not clarify that the output is a list or how it relates to other bundle tools. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and 100% coverage, so the baseline is 3. The description adds no parameter information, but none is needed. It correctly implies no filtering is available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all bundles, using a specific verb and resource. However, it does not differentiate from sibling list tools like netlicensing_list_products, so it does not achieve a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as netlicensing_get_bundle for a single bundle or netlicensing_obtain_bundle for a different operation. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_countriesA
List all countries available for VAT and localization settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds context ('for VAT and localization settings') beyond the name, but does not disclose any behavioral traits like authentication needs, rate limits, or whether the list is static or dynamic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and concise with no redundant words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an existing output schema, the description is complete. It specifies the purpose and scope (VAT/localization) without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. 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 there is nothing to describe. The description's mention of VAT and localization settings provides context, but since no parameters exist, the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all countries available for VAT and localization settings. This distinguishes it from sibling list tools (e.g., netlicensing_list_products) by specifying the domain (VAT/localization).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or when not to use it. The description does not mention prerequisites, alternative tools, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_licenseesA
List all customers (licensees) for a product.
Args: product_number: Product to list customers for filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool lists licensees non-destructively but omits details on pagination, error behavior, or output format. The presence of an output schema mitigates the lack of return value description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence for purpose and two lines for parameters. It is front-loaded with the key action and resource, with no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of an output schema, the description covers the essential purpose and parameters for a list operation. It lacks mention of pagination or result format, but the output schema likely fills that gap. Overall adequate for a straightforward list 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?
With 0% schema description coverage, the parameter descriptions add value: 'product_number' is explained as 'Product to list customers for' and 'filter' as 'Optional server-side filter expression' with an example. This clarifies their purpose beyond the schema's basic type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all customers (licensees) for a product. The verb 'list' and resource 'licensees' are specific, distinguishing it from other list tools like netlicensing_list_licenses or netlicensing_list_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 requiring a product_number and offering an optional filter, but it does not explicitly state when to use this tool over alternatives or provide exclusion criteria. The context of siblings indicates it is the only licensee listing tool, so no direct alternative exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_licensesB
List all licenses for a specific customer.
Args: licensee_number: Customer whose licenses to list filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether it is read-only, pagination, or rate limits. Listing implies safety, but no explicit transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences for the overall purpose and clear parameter explanations. No unnecessary words, but could be slightly more structured (e.g., using bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 2 parameters and an output schema (though not shown), the description covers the basic inputs but does not mention output format, pagination, or error conditions. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by adding meaning: licensee_number is described as 'Customer whose licenses to list' and filter as 'Optional server-side filter expression' with an example. This adds value beyond the schema titles, though could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain 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 the action (list) and resource (licenses) and specifies the scope (for a specific customer via licensee_number). This distinguishes it from sibling tools like netlicensing_list_licensees or netlicensing_list_bundles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., netlicensing_get_license for a single license). The description does not mention exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_license_templatesA
List all license templates for a product module.
Args: module_number: Module whose templates to list filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| module_number | Yes | ||
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies read-only behavior but does not disclose details like pagination, limits, or the structure of returned data. The standard 'list' operation is adequately described but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus args) and front-loads the purpose. However, the 'Args' block could be integrated into the narrative for better flow, but overall it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and the presence of an output schema, the description is mostly adequate. It explains the basic function and parameters but lacks finer behavioral details like pagination or when to use it over other list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description compensates well: 'module_number' is explained as the target module, and 'filter' is explained with an example expression. This adds meaning beyond the schema's minimal type information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 lists all license templates for a product module, using a specific verb ('list') and resource ('license templates'), distinguishing it from sibling list tools like 'list_licenses'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 what it does but does not provide explicit guidance on when to use it versus alternatives (e.g., get_license_template for a single template). No when-not or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_license_typesA
List all license types supported by the NetLicensing service.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose behavioral traits like idempotency, response size, or whether it returns cached data, which is minimal for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource, containing no extraneous 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 has an output schema (not detailed) and no parameters, the description is adequate but does not explain what license types are or any caveats like pagination, 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 has zero parameters, so no parameter information is needed. According to guidelines, 0 parameters yields a baseline 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 the verb 'list' and the resource 'all license types supported by the NetLicensing service,' distinguishing it from sibling tools like netlicensing_list_licenses which list actual licenses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as netlicensing_list_licenses or netlicensing_list_license_templates, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_licensing_modelsA
List all licensing models supported by the NetLicensing service.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses a read-only list operation, which is transparent enough for a simple tool. No mention of side effects, but none are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no unnecessary words. Well-structured 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?
Given the simplicity (no parameters), existing output schema, and the straightforward nature of listing all items, the description is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Description adds nothing extra, but the baseline for zero parameters 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 clearly states the verb 'list', the resource 'licensing models', and scope 'all'. It distinguishes from sibling tools that list other entities like license types or payment methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (list all models) but provides no explicit guidance on when to use this tool versus alternatives like netlicensing_list_license_types. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_payment_methodsA
List all payment methods configured for the account.
Args: filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral context beyond 'list', omitting details on side effects, authentication, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no filler, and front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and an output schema, the description covers the essential function and parameter usage, though it could mention output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaning for the filter parameter with an example and denotes optionality, compensating for the schema's minimal information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 lists payment methods for the account, using a specific verb and resource. It effectively distinguishes from sibling tools like netlicensing_get_payment_method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, and no mention of when not to use or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_product_modulesC
List all modules (feature groups) for a product.
Args: product_number: Product whose modules to list filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fails to disclose behavioral traits beyond the action 'list'. It does not mention side effects, permissions, read-only nature, rate limits, pagination, or response format, despite having an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the purpose in the first sentence, and uses a simple args list. It is easy to scan and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with few parameters, the description covers the basics. However, it misses context like output structure, pagination, and error handling, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds basic meaning: product_number is the product whose modules to list, and filter is an optional server-side filter expression with an example. This is minimally adequate but lacks depth (e.g., filter syntax 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 the tool lists all modules (feature groups) for a product, using a specific verb and resource. It distinguishes itself from sibling tools like create, get, delete by focusing on 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?
No guidance is provided on when to use this tool versus alternatives (e.g., get_product_module for a single module, or when to use filters). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_productsA
List all products in the NetLicensing account.
Args: filter: Optional server-side filter expression (e.g. 'active=true')
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It only states the basic operation without mentioning whether the action is idempotent, read-only, requires authentication, or if there are any side effects or limits like pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences and a one-line parameter breakdown. The main action is front-loaded, and every sentence adds value without superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 purpose and one optional parameter. The description, though brief, covers the essential functionality for a listing operation. With an output schema assumed present, return values need not be detailed. However, it could mention if pagination or limits apply, but this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds a meaningful explanation for the `filter` parameter: 'Optional server-side filter expression (e.g. 'active=true')'. This provides an example and clarifies its optional nature, adding value beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List all products in the NetLicensing account', specifying the verb (list), resource (products), and scope (all). It is easily distinguishable from sibling tools like netlicensing_create_product or netlicensing_get_product by resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., netlicensing_get_product for a single product, or netlicensing_create_product to create one). There are no when-to-use or when-not-to-use indications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_tokensA
List all active tokens in the account.
Args: filter: Optional server-side filter expression (e.g. 'tokenType=SHOP')
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'list all active tokens' and mentions a filter, but does not disclose pagination, rate limits, or authentication requirements. Adequate for a simple read 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 brief with a front-loaded purpose statement and a clear parameter block. Every sentence adds value 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 presence of an output schema, return values need not be explained. The description covers the essential scope ('active tokens') and filter usage. It could mention pagination, but the tool's simplicity makes it 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 0% description coverage, but the description explains the filter parameter as 'Optional server-side filter expression (e.g. 'tokenType=SHOP')', adding meaningful example and purpose 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 'List all active tokens in the account.' It uses a specific verb (list) and resource (tokens), and distinguishes from sibling tools via scope (active) and operation type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a filter parameter example but does not explicitly specify when to use this tool versus alternatives like get_token or create_token tools. No exclusions or context for tool selection is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_list_transactionsA
List all transactions in the account.
Args: filter: Optional server-side filter expression (e.g. 'status=CLOSED')
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It implies a read-only operation (list) but lacks details on authentication, rate limits, pagination, or potential side effects. This is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a front-loaded purpose sentence followed by a clean parameter explanation. Every word serves a purpose; no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, return value details are not needed. However, for a list tool, missing information about pagination, ordering, or result limits reduces completeness. It's adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning to the single parameter 'filter' by explaining it as an optional server-side filter expression and providing an example. This goes beyond the schema's raw type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List all transactions in the account.' The verb 'List' and resource 'transactions' are specific, and the scope 'in the account' distinguishes it from tools like 'get_transaction' or 'create_transaction'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or when not to use it. The optional filter parameter is noted but not in the context of choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_obtain_bundleB
Obtain a bundle for a customer β creates licenses from all license templates included in the bundle for the specified licensee.
Args: bundle_number: Bundle to obtain licensee_number: Customer (licensee) who receives the licenses
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_number | Yes | ||
| licensee_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral traits. It mentions 'creates licenses' indicating a write operation, but lacks details on side effects (e.g., overwriting existing licenses), required permissions, error handling, or idempotency. Minimal disclosure overall.
Agents need to know what a tool does to the 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 sentence followed by an 'Args:' section listing parameters. No redundant information, though the parameter descriptions are minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity (2 required params, no enums) and existence of an output schema, the description covers basic purpose but omits important context like error scenarios, prerequisites (e.g., existence of bundle and licensee), and effects on existing licenses. Incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It provides brief descriptions: 'Bundle to obtain' and 'Customer (licensee) who receives the licenses.' This adds some context but is not rich enough to fully explain the parameters beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Obtain a bundle for a customer β creates licenses from all license templates included in the bundle for the specified licensee.' This provides a specific verb (obtain), resource (bundle), and action (creates licenses), distinguishing it from sibling tools like netlicensing_create_license or netlicensing_get_bundle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bulk license creation via a bundle but does not explicitly state when to use this tool versus alternatives like netlicensing_create_license. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_transfer_licensesB
Transfer all licenses from one licensee to another.
Args: from_licensee_number: Source licensee to_licensee_number: Destination licensee
| Name | Required | Description | Default |
|---|---|---|---|
| from_licensee_number | Yes | ||
| to_licensee_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'transfer', which implies a mutation. It does not disclose whether the operation is reversible, permissions required, or the effect on the source licensee (e.g., becomes empty). For a write operation without annotations, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence plus a two-line argument list. Every word earns its place, no fluff. The structure is clear and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only two parameters and an output schema (unknown content), the description omits important context: the effect on the source licensee, whether all licenses are moved atomically, and error handling. This incompleteness could lead to misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the JSON schema has no descriptions, the tool description itself provides brief parameter explanations: 'Source licensee' and 'Destination licensee'. This adds meaning beyond the bare parameter names. However, it lacks format examples or constraints, which would increase clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool transfers all licenses from one licensee to another. It specifies the action and resources, but does not distinguish from sibling tools explicitly, though siblings are mostly CRUD operations. A more detailed explanation of the transfer effect would be beneficial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when needing to reassign licenses between licensees, but lacks explicit guidance on when to use versus alternatives (e.g., creating new licenses). No prerequisites or conditions for use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_bundleA
Update an existing bundle's fields.
Args: bundle_number: Bundle to update name: New name (leave empty to keep current) active: Set active state (omit to keep current) license_template_numbers: New list of license template numbers (omit to keep current) price: New price (omit to keep current) currency: New currency code (leave empty to keep current) description: New description (leave empty to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_number | Yes | ||
| name | No | ||
| active | No | ||
| license_template_numbers | No | ||
| price | No | ||
| currency | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It lacks details on success/error responses, idempotency, required permissions, or side effects. The update operation's atomicity is not mentioned.
Agents need to know what a tool does to the 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: one introductory line followed by a clear list of arguments with usage notes. No extraneous 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?
Input parameters are thoroughly described, but the description omits return value (output schema exists but not explained) and error conditions. For a 7-parameter mutation tool, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates fully by explaining each parameter's purpose and behavior (e.g., 'leave empty to keep current', 'omit to keep current'). This adds critical meaning beyond the raw 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 'Update an existing bundle's fields', specifying the action (update) and resource (bundle). It distinguishes from sibling tools like netlicensing_create_bundle and netlicensing_delete_bundle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 parameter semantics (e.g., 'leave empty to keep current') but does not provide explicit guidance on when to use this tool versus other update tools among siblings. Usage is implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_licenseA
Update a license's properties.
Args: license_number: License to update active: True to activate, False to deactivate (omit to keep current) name: New display name (leave empty to keep current) start_date: ISO 8601 datetime β TIMEVOLUME type (leave empty to keep current) price: License price (omit to keep current) currency: ISO 4217 currency code (leave empty to keep current) time_volume: Duration value β TIMEVOLUME type (leave empty to keep current) time_volume_period: DAY | WEEK | MONTH | YEAR (leave empty to keep current) quantity: Usage quota β PayPerUse model (leave empty to keep current) used_quantity: Used count β PayPerUse model (leave empty to keep current) parent_feature: Parent feature β Rental model (leave empty to keep current) hidden: Visibility in Shop (omit to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| license_number | Yes | ||
| active | No | ||
| name | No | ||
| start_date | No | ||
| price | No | ||
| currency | No | ||
| time_volume | No | ||
| time_volume_period | No | ||
| quantity | No | ||
| used_quantity | No | ||
| parent_feature | No | ||
| hidden | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the update is atomic, reversible, or requires specific permissions. It does explain parameter effects (e.g., 'active: True to activate'), but overall transparency is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a structured docstring format with clear sections, but it is verbose due to repeated phrases like 'leave empty to keep current' for many parameters. It could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no schema coverage, no annotations), the description covers parameter semantics well but lacks information about return values (output schema exists), error handling, and required fields beyond the first. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds significant meaning by explaining each parameter's purpose and effect, such as 'start_date: ISO 8601 datetime β TIMEVOLUME type' and 'active: True to activate, False to deactivate.' However, some descriptions like 'time_volume' remain vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Update a license's properties,' which is a clear verb+resource statement. It distinguishes itself from sibling tools like 'create_license' and 'delete_license' by explicitly indicating an update operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like 'create_license' or 'delete_license.' It implies usage for updating an existing license but lacks explicit guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_licenseeB
Update a licensee's properties.
Args: licensee_number: Licensee to update name: New name (empty to keep current) active: New active state (omit to keep current) marked_for_transfer: Mark for license transfer (omit to keep current) licensee_secret: Secret for licensee identification (leave empty to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| name | No | ||
| active | No | ||
| marked_for_transfer | No | ||
| licensee_secret | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description does not disclose consequences like whether updates are irreversible, require specific permissions, or affect related entities. It does hint that empty strings keep current values, but lacks comprehensive behavioral context expected for a mutation 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 concise with a bullet-like list of parameters. It front-loads the purpose sentence. However, the format could be more readable, and the parameter explanations are terse. It is appropriately sized but not exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the behavior of keeping current values for optional parameters. However, it does not mention the output schema (which exists), error conditions, or required permissions. Given no annotations and moderate complexity, it is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It adds meaning beyond the schema: explains that empty string keeps current name, omitting active keeps current state, etc. This is valuable context not present in the schema's default values and titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a licensee's properties', indicating the verb (update) and resource (licensee properties). It distinguishes from siblings like netlicensing_update_license as it targets licensee, not license. However, it does not emphasize unique aspects beyond parameter list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are many update tools among siblings, but the description provides no context, prerequisites, or exclusions. The agent must infer that this is for updating licensee properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_license_templateB
Update a license template's properties.
Args: template_number: Template to update name: New name (leave empty to keep current) active: Set active state (omit to keep current) price: New price (omit to keep current) currency: New ISO 4217 currency code (leave empty to keep current) automatic: Auto-assign to new licensees (omit to keep current) hidden: Hide template in NetLicensing Shop (omit to keep current) hide_licenses: Hide derived licenses in the Shop (omit to keep current) time_volume: Number of time units β TIMEVOLUME type (omit to keep current) time_volume_period: DAY | WEEK | MONTH | YEAR β TIMEVOLUME type (leave empty to keep current) max_sessions: Concurrent sessions β FLOATING type (omit to keep current) quantity: Usage quota β QUANTITY / PayPerUse type (omit to keep current) grace_period: Grace period after expiry β Subscription model (omit to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| template_number | Yes | ||
| name | No | ||
| active | No | ||
| price | No | ||
| currency | No | ||
| automatic | No | ||
| hidden | No | ||
| hide_licenses | No | ||
| time_volume | No | ||
| time_volume_period | No | ||
| max_sessions | No | ||
| quantity | No | ||
| grace_period | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it explains parameter effects, it lacks disclosure of overall side effects, idempotency, permissions, or error conditions, leaving critical behavioral traits unaddressed.
Agents need to know what a tool does to the 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 clear and front-loaded with a purpose sentence, but the parameter list is lengthy and could be more concise or structured (e.g., grouping related parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 13-parameter mutation with no annotations, the description lacks global context (e.g., that only provided fields are updated) and does not cover error scenarios or interaction with related tools, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description compensates by clarifying each parameter's purpose and usage (e.g., 'omit to keep current' for optional fields), adding significant value beyond type information.
Input schemas describe structure but not intent. Descriptions should explain 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 'Update a license template's properties.' It uses a specific verb (Update) and resource (license template), distinguishing it from sibling tools like create, delete, get, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for altering existing license templates but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_payment_methodB
Update a payment method's configuration.
Args: payment_method_number: Payment method to update active: Enable or disable the payment method paypal_subject: PayPal account e-mail address
| Name | Required | Description | Default |
|---|---|---|---|
| payment_method_number | Yes | ||
| active | No | ||
| paypal_subject | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'Update' but does not disclose side effects (e.g., overwrite vs. merge), authentication needs, or what happens to unspecified fields. No mention of return value despite an output schema being present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an arg list. Purpose stated immediately, parameters listed clearly. No fluff 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?
Despite low parameter count and no enums, the tool has 3 parameters, an output schema, and no annotations. Description omits return value, potential errors, and any behavioral constraints (e.g., what happens if active is null). Incomplete for an update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It adds brief clarification: 'Enable or disable the payment method' for the boolean field, and 'PayPal account e-mail address' for the string. However, 'Payment method to update' is nearly redundant with the parameter name, and no additional semantics are provided for defaults or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Update a payment method's configuration.' Distinguishes from sibling update tools (e.g., netlicensing_update_license) by specifying the payment method resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., get, list). The description does not mention prerequisites or situations where other tools 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.
netlicensing_update_productB
Update an existing product's fields.
Args: product_number: Product to update name: New name (leave empty to keep current) active: Set active state (omit to keep current) version: New version string (leave empty to keep current) description: New description (leave empty to keep current) licensing_info: Licensing information for the shop (leave empty to keep current) licensee_auto_create: Auto-create licensees on first validation vat_mode: GROSS or NET (leave empty to keep current) licensee_secret_mode: DISABLED, PREDEFINED, or CLIENT (leave empty to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| product_number | Yes | ||
| name | No | ||
| active | No | ||
| version | No | ||
| description | No | ||
| licensing_info | No | ||
| licensee_auto_create | No | ||
| vat_mode | No | ||
| licensee_secret_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Update' (mutation) and gives per-field behavior, but lacks details on side effects, idempotency, or required 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 structured as an Args list but is relatively long. The opening sentence is clear, but the parameter explanations could be more concise. It is adequate but not 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?
Given the complexity (9 parameters, output schema exists, no annotations), the description covers parameter behavior but lacks overall context like whether the update is partial or full, and does not discuss validation or error 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 0%, so the description bears the burden. It adds meaning by explaining each parameter's effect (e.g., 'leave empty to keep current' and provides allowed values for vat_mode and licensee_secret_mode. However, some descriptions are vague (e.g., 'Set active 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?
The description clearly states the action 'Update an existing product's fields,' specifying the verb and resource. The name also includes 'update_product,' but the description does not explicitly differentiate from other update tools, so it gets a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives (e.g., create_product or other updates). There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_product_moduleA
Update a product module's properties.
Args: module_number: Module to update name: New name (leave empty to keep current) active: Set active state (omit to keep current) max_checkout_validity: Maximum checkout validity in days (Floating model, omit to keep current) yellow_threshold: Remaining time volume for yellow warning (Rental model, omit to keep current) red_threshold: Remaining time volume for red warning (Rental model, omit to keep current) node_secret_mode: PREDEFINED or CLIENT (NodeLocked model, leave empty to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| module_number | Yes | ||
| name | No | ||
| active | No | ||
| max_checkout_validity | No | ||
| yellow_threshold | No | ||
| red_threshold | No | ||
| node_secret_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially discloses behavior by noting what happens when parameters are omitted (e.g., 'leave empty to keep current'), but it does not explain side effects, auth requirements, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a docstring with an initial purpose sentence followed by parameter explanations. It is concise without unnecessary fluff, though the parameter list is lengthy but necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 all 7 parameters with model-specific guidance. The output schema exists to handle return values, so its omission is acceptable. It provides sufficient context for agent 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?
Despite 0% schema description coverage, the description adds substantial meaning by explaining each parameter's purpose and model-specific context (e.g., 'Remaining time volume for yellow warning (Rental model)'). This goes beyond the schema's type-only information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a product module's properties', specifying the verb (update) and resource (product module). It distinguishes from create_product_module by name and 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?
No explicit when-to-use or alternatives are given. The agent can infer from sibling tools that this is for modifying existing modules, but no direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_update_transactionB
Update a transaction's status or properties.
Args: transaction_number: Transaction to update status: CANCELLED | CLOSED | PENDING (leave empty to keep current) active: Set active state (omit to keep current) name: Human-readable name (leave empty to keep current) date_closed: ISO 8601 close timestamp (leave empty to keep current) payment_method: Payment method number (leave empty to keep current)
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_number | Yes | ||
| status | No | ||
| active | No | ||
| name | No | ||
| date_closed | No | ||
| payment_method | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must bear the full burden. It does not disclose behavioral aspects like destructiveness, reversibility, permission requirements, or side effects of updating a transaction.
Agents need to know what a tool does to the 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 structured as a list under 'Args', making it easy to scan. It contains no redundant information and efficiently conveys usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return value details are not required. However, it misses important behavioral context (e.g., constraints on updating closed transactions) and does not fully cover edge cases, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite zero schema description coverage, the description adds meaningful hints for each parameter (e.g., 'leave empty to keep current'), compensating for the lack of schema documentation. However, it could specify valid values for payment_method and date_closed format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a transaction's status or properties.' It uses a specific verb and resource, distinguishing it from sibling tools like create_transaction, get_transaction, and list_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to update vs. create or delete a transaction. No context on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlicensing_validate_licenseeA
Validate a customer's licenses across all product modules.
Returns per-module validity, type, expiry dates, and usage counts.
Args: licensee_number: Customer to validate product_number: Optional β scope validation to a specific product licensee_name: Human-readable name for auto-created licensees (when licenseeAutoCreate is enabled) session_id: Floating model β unique session identifier action: Floating model β 'checkOut' or 'checkIn' product_module_number: NodeLocked model β target product module node_secret: NodeLocked model β unique device/node secret
| Name | Required | Description | Default |
|---|---|---|---|
| licensee_number | Yes | ||
| product_number | No | ||
| licensee_name | No | ||
| session_id | No | ||
| action | No | ||
| product_module_number | No | ||
| node_secret | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool validates licenses but does not disclose whether it is read-only, idempotent, or has side effects. No behavioral traits like rate limits or permissions are mentioned.
Agents need to know what a tool does to the 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: a one-sentence purpose, a return summary, and a parameter list with brief explanations. No fluff or redundancy, every sentence 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 7 parameters, output schema, and no nested objects, the description covers return values and parameter meanings well. However, it omits edge cases (e.g., invalid licensee) and error handling, and lacks prerequisites or usage contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description text adds meaning for all 7 parameters by explaining their purposes (e.g., 'licensee_number: Customer to validate', 'action: Floating model β checkOut or checkIn'). This provides context beyond the schema's titles and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Validate a customer's licenses') and the resource ('across all product modules'), and specifies the return values (per-module validity, type, expiry dates, usage counts). This differentiates it from sibling tools like get_licensee or list_licenses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 validation but does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance. It lists optional parameters for specific licensing models, but lacks explicit contextual direction.
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.
48 tool updates
v0.1.0- First observed
netlicensing_create_api_token - First observed
netlicensing_create_bundle - First observed
netlicensing_create_license - First observed
netlicensing_create_license_template - First observed
netlicensing_create_licensee - First observed
netlicensing_create_product - First observed
netlicensing_create_product_module - First observed
netlicensing_create_shop_token - First observed
netlicensing_create_transaction - First observed
netlicensing_delete_bundle - First observed
netlicensing_delete_license - First observed
netlicensing_delete_license_template - First observed
netlicensing_delete_licensee - First observed
netlicensing_delete_product - First observed
netlicensing_delete_product_module - First observed
netlicensing_delete_token - First observed
netlicensing_get_bundle - First observed
netlicensing_get_license - First observed
netlicensing_get_license_template - First observed
netlicensing_get_licensee - First observed
netlicensing_get_payment_method - First observed
netlicensing_get_product - First observed
netlicensing_get_product_module - First observed
netlicensing_get_token - First observed
netlicensing_get_transaction - First observed
netlicensing_list_bundles - First observed
netlicensing_list_countries - First observed
netlicensing_list_license_templates - First observed
netlicensing_list_license_types - First observed
netlicensing_list_licensees - First observed
netlicensing_list_licenses - First observed
netlicensing_list_licensing_models - First observed
netlicensing_list_payment_methods - First observed
netlicensing_list_product_modules - First observed
netlicensing_list_products - First observed
netlicensing_list_tokens - First observed
netlicensing_list_transactions - First observed
netlicensing_obtain_bundle - First observed
netlicensing_transfer_licenses - First observed
netlicensing_update_bundle - First observed
netlicensing_update_license - First observed
netlicensing_update_license_template - First observed
netlicensing_update_licensee - First observed
netlicensing_update_payment_method - First observed
netlicensing_update_product - First observed
netlicensing_update_product_module - First observed
netlicensing_update_transaction - First observed
netlicensing_validate_licensee
TDQS
Each tool has a clear, distinct purpose with unique verb-noun combinations (create, get, list, update, delete, obtain, transfer, validate). There is no overlap; for example, 'create_license' and 'create_license_template' target different resources.
All tools follow the consistent pattern 'netlicensing_{action}_{resource}' using snake_case. Verbs are uniform and predictable across all entities, and there are no mixed conventions.
At 48 tools, the count is high for an MCP server, but the domain is a comprehensive licensing platform with many entities and CRUD operations. While justified by scope, it exceeds typical counts and may overwhelm agents.
The tool set covers all major entities (product, module, license template, license, licensee, bundle, transaction, token, payment method) with full CRUD plus specialized operations like validation, transfer, and bundle obtain. Reference data (countries, license types) is also included.
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
MCP server for Lemon Squeezy β stores, products, orders, subscriptions, license keys.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that enables natural language interaction with the Open Policy Agent REST API, allowing users to manage policies, decisions, and data through conversational interfaces.1-
- FlicenseNot gradedqualityDmaintenanceMCP Server for Google's Enterprise License Manager API, allowing users to manage licenses for Google products in an enterprise setting through natural language.-
- AlicenseCqualityDmaintenanceA Model Context Protocol server for the Hetzner Cloud API that enables natural language management of cloud infrastructure. Users can list, create, and modify servers, networks, volumes, and load balancers through MCP-compatible clients.6717MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating with n8n, enabling workflow automation and management through natural language.2251MIT
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/Labs64/NetLicensing-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server