Skip to main content
Glama

vibops-mcp

License: MIT Python 3.11+ MCP Tools Tests

The MCP server for VibOps — The AI Infrastructure Engine. From code to GPU in one conversation.

The problem

Getting an AI app from code to production on GPUs requires stitching together 9+ tools — git, Docker, CI/CD, Helm, kubectl, GPU monitoring, cost management, compliance, alerting. Each with its own API, dashboard, and cost model. No single interface spans the full pipeline.

Related MCP server: agent-guard-mcp

The solution

vibops-mcp connects your AI assistant to VibOps — the engine that clones, builds, deploys, scales, monitors, fixes, and bills your apps and agents on any GPU, any cluster, any cloud. One pip install, 93 tools, one conversation.

  • Ship — clone repos, build containers, deploy models, run Helm/kubectl, trigger pipelines, submit Slurm jobs

  • Operate — scale deployments, manage VMs (Proxmox/XO/vSphere), detect and remediate GPU anomalies

  • Observe — GPU utilisation, workload breakdown, MTTR, cost estimates, live K8s deployments

  • Govern — AI Act compliance, SOC 2/RGPD reports, immutable audit chain, policy management

  • FinOps — per-agent cost tracking, budget enforcement, chargeback, spend trends, waste analysis

Every operation goes through your VibOps instance and is recorded in the immutable audit log.

Installation

pip install git+https://github.com/VibOpsai/vibops-mcp.git

Configuration

You need two environment variables:

Variable

Description

VIBOPS_URL

Base URL of your VibOps instance, e.g. https://vibops.example.com

VIBOPS_TOKEN

API token — create one in VibOps → Settings → API Tokens

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "vibops": {
      "command": "vibops-mcp",
      "env": {
        "VIBOPS_URL": "https://vibops.example.com",
        "VIBOPS_TOKEN": "your-token-here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root, or to the global config:

{
  "mcpServers": {
    "vibops": {
      "command": "vibops-mcp",
      "env": {
        "VIBOPS_URL": "https://vibops.example.com",
        "VIBOPS_TOKEN": "your-token-here"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add vibops vibops-mcp \
  -e VIBOPS_URL=https://vibops.example.com \
  -e VIBOPS_TOKEN=your-token-here

Available tools

Observation (16 tools — read-only)

Tool

Description

list_clusters

List clusters and GPU utilisation

list_kubectl_contexts

List available kubectl contexts

get_cluster_deployments

Live K8s deployment status for a cluster

get_cluster_rate

Get configured GPU cost rate for a cluster

list_jobs

List recent jobs with optional filters

get_job

Get job details and result

get_job_metrics

Job success rate, latency P50/P95/P99, error breakdown

get_gpu_metrics

Hourly GPU utilisation time-series

get_workload_breakdown

Job count by workload type

get_mttr

Mean Time To Resolve GPU alerts

get_cost_estimate

Estimated GPU spend

list_gateways

List registered gateways and status

list_alerts

List GPU alerts (open or resolved)

list_secrets

List secrets (names only, never values)

list_providers

List configured AI/GPU cloud providers

list_pipelines

List automation pipelines

Actions (18 tools — write)

Tool

Description

scale_deployment

Scale a K8s deployment replica count

deploy_model

Deploy an AI model onto a GPU cluster

helm_upgrade

Run helm upgrade --install

helm_uninstall

Uninstall a Helm release

run_kubectl

Run an arbitrary kubectl command

git_clone

Clone a git repository

create_secret

Store an encrypted secret

trigger_pipeline

Manually trigger an automation pipeline

slurm_get_cluster_info

Get Slurm cluster info and partition details

slurm_list_jobs

List Slurm jobs with optional filters

slurm_get_job_status

Get status of a specific Slurm job

slurm_get_job_output

Retrieve stdout/stderr of a completed Slurm job

slurm_submit_job

Submit a new Slurm job

slurm_cancel_job

Cancel a running or pending Slurm job

registry_list_repos

List container registry repositories

registry_list_tags

List tags for a container image

registry_check_image

Check image details (size, layers, created date)

registry_delete_tag

Delete a stale image tag (requires confirmed=True)

Configuration (3 tools)

Tool

Description

set_cluster_rate

Set GPU cost rate for a cluster (admin only)

register_gateway

Register a new gateway (returns one-time token)

delete_gateway

Revoke a gateway

Agent Infrastructure Control Plane (12 tools)

The missing layer between your AI agents and your GPU fleet. Works with any framework (n8n, LangChain, CrewAI, Dify) — just point to the VibOps LLM Proxy.

Tool

Description

FinOps per agent

get_agent_usage

GPU cost per agent — tokens, requests, cost, GPU-hours. "Which agent costs the most?"

get_agent_usage_detail

Drill-down on one agent — daily breakdown, model distribution, cost trend

get_agent_budget

Current budget + MTD spend for an agent

set_agent_budget

Set monthly spend limit — soft alert at 80%, hard block at 100% (HTTP 429)

Model access control

get_agent_model_rules

List model access rules — which agent can use which LLM

update_agent_model_rule

Create a rule: glob patterns, deny-first. "RH agents → Mistral only"

Identity lifecycle

list_agent_identities

List machine identities for agents

create_agent_identity

Create a new machine identity (key shown once)

rotate_agent_identity

Rotate the key for an existing identity

revoke_agent_identity

Revoke an identity immediately

Dependency graph

get_agent_dependency_graph

Full org-wide graph: agent→model, agent→connector, agent→sub-agent

get_agent_dependencies

Dependencies for one agent — impact analysis before migration

Governance & Compliance (21 tools)

Tool

Description

list_anomalies

List GPU anomalies with optional cluster/status filter

get_open_anomalies

Get all currently open anomalies

resolve_anomaly

Mark an anomaly as resolved

list_ai_act_controls

List AI Act compliance controls

get_ai_act_score

Get the overall AI Act compliance score

update_ai_act_control

Update status, notes, or evidence URL for a control

list_compliance_reports

List generated compliance reports

generate_compliance_report

Generate a SOC 2, RGPD, or HIPAA report asynchronously

get_compliance_report

Poll/retrieve a generated compliance report

list_audit_logs

Query the immutable audit log with filters

verify_audit_chain

Verify HMAC-SHA256 integrity of the full audit chain

get_policy

Get the current organisation policy

update_policy

Replace the organisation policy (immediate effect)

list_eval_rubrics

List LLM-as-judge evaluation rubrics

evaluate_job

Trigger LLM-as-judge evaluation for a job

get_job_evaluations

Retrieve evaluation results for a job

get_ldap_config

Get LDAP / Active Directory configuration

update_ldap_config

Configure or enable/disable LDAP integration

get_siem_config

Get SIEM push export configuration

update_siem_config

Set Splunk/Datadog SIEM destination

push_to_siem

Export audit events to configured SIEM

GPU FinOps (4 tools)

Tool

Description

get_budget

Get current GPU budget and consumed spend

get_chargeback

Get chargeback breakdown by tenant for a given month

get_spend_trend

Get daily GPU spend trend (default: last 30 days)

get_waste_analysis

Identify idle GPU resources and cost optimisation opportunities

LLM Inference Proxy

VibOps includes a transparent OpenAI-compatible proxy (port 8004) that sits between your AI agents and LLM inference servers (vLLM, Ollama, TGI). Every inference request is logged with agent attribution for FinOps.

Your agents point to the proxy instead of the LLM directly:

# Before
OPENAI_BASE_URL=http://vllm:8000/v1

# After
OPENAI_BASE_URL=http://vibops-proxy:8004/v1

Add a X-VibOps-Agent-Id header to attribute costs per agent:

curl -X POST http://vibops-proxy:8004/v1/chat/completions \
  -H "X-VibOps-Agent-Id: pricing-agent-v2" \
  -H "X-VibOps-Team: supply-chain" \
  -d '{"model": "mistral:7b", "messages": [...]}'

The proxy captures: agent ID, team, model, tokens, latency, GPU cost — visible in the console FinOps dashboard and queryable via get_agent_usage.

Example prompts

"Clone my repo and deploy it on the GPU cluster."
"Deploy llama3:8b on vibops-dev with 2 replicas."
"Scale the inference deployment to 4 replicas on prod-cluster."
"What's our GPU utilisation trend over the last 7 days?"
"Show me the cost breakdown per cluster this week."
"Which clusters have open critical GPU alerts?"
"Are there any open GPU anomalies right now?"
"Scan my infrastructure and show discovered services."
"What's our AI Act compliance score and which controls are non-compliant?"
"Generate a SOC 2 report for Q1 2026."
"Verify the audit chain hasn't been tampered with."
"Which agent costs the most in GPU this month?"
"Show me the inference cost breakdown for the pricing agent."
"Which agents depend on the claude-opus-4-6 model?"
"Create a machine identity for the pricing-agent with a 1-year expiry."
"Show me the spend trend for the last 7 days and flag any waste."

Contributing

See CONTRIBUTING.md. All contributions require a DCO sign-off (git commit -s).

License

MIT — free to use, modify, and distribute. See LICENSE.

Built on FastMCP and VibOps — The AI Infrastructure Engine.

Available Tools

74 tools
create_agent_identityA

Create a new agent machine identity and return its API key.

The raw key is returned ONCE in this response and never again — store it securely immediately. The key is prefixed with "vib_" and stored as a SHA-256 hash in VibOps. If the key is lost, rotate the identity instead of recreating it.

Write operation — recorded in the audit log.

Args: name: Human-readable label for this identity (e.g. "pricing-agent-prod"). expires_at: Optional expiry date in ISO 8601 format (e.g. "2027-01-01T00:00:00Z"). If omitted, the identity does not expire.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
expires_atNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully discloses critical behavioral traits: key returned only once, stored as SHA-256 hash, prefixed with 'vib_', audit log recording, and advice to rotate if lost. No contradictions.

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

Conciseness5/5

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

Highly concise: key security warnings upfront, then parameter details. Every sentence adds value. Efficiently structured with a clear paragraph followed by args list.

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

Completeness4/5

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

Covers essential aspects: creation, key handling, security, and parameters. Lacks explicit return structure details, but the key behavior is sufficiently described given the tool's simplicity.

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

Parameters5/5

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

With 0% schema description coverage, the description thoroughly explains both parameters: name with an example, expires_at with format and default behavior. Adds meaningful context beyond the schema.

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

Purpose5/5

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

Clearly states it creates a new agent machine identity and returns an API key. Differentiates from siblings like revoke_agent_identity and rotate_agent_identity by focusing on creation and key handling.

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

Usage Guidelines4/5

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

Provides strong guidance on storing the key immediately, rotating instead of recreating on loss, and noting it's a write operation with audit logging. However, does not explicitly contrast with related tools like create_secret.

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

create_secretA

Store an encrypted secret in the VibOps vault.

The value is encrypted at rest and never returned by the API after storage. If a secret with the same name already exists, it is overwritten.

Write operation — recorded in the audit log.

Args: name: Secret name (used to reference this secret in job payloads). value: Secret value (encrypted, never logged or returned). description: Optional description of what this secret is for.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
valueYes
descriptionNo

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses key behaviors: encryption at rest, value never returned, audit logging, and overwrite behavior. Given no annotations, this coverage is thorough, though it omits potential permission requirements or side effects beyond audit logging.

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

Conciseness5/5

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

The description is concise, with a clear opening sentence, behavioral notes, and a structured Args section. Every sentence adds value, and there is no redundancy or irrelevant information.

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

Completeness4/5

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

Given the tool's simplicity (3 parameters, no output schema), the description covers the purpose, behavior, parameter semantics, and side effects adequately. It does not explain the return value (likely success/failure), but this is minor. The description is sufficient for an agent to understand the tool's function.

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

Parameters3/5

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

With 0% schema coverage, the description must compensate. It adds meaning by explaining each parameter: name as reference, value as encrypted and not logged/returned, description as optional. However, it lacks examples, format constraints, or default values, leaving room for ambiguity.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Store an encrypted secret in the VibOps vault.' The verb 'store' and resource 'encrypted secret' are specific. While there is no direct sibling for creating secrets, it distinguishes itself from other create tools like create_agent_identity by focusing on secrets.

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

Usage Guidelines3/5

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

The description mentions overwrite behavior ('If a secret with the same name already exists, it is overwritten.'), which implies usage when creating or updating. However, it does not provide explicit guidance on when to use this tool versus alternatives, such as when to update vs. create anew, or any prerequisites.

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

delete_gatewayA

Revoke a VibOps gateway and invalidate its token.

The gateway will immediately lose the ability to poll for jobs. Existing jobs assigned to this gateway will fail.

Write operation — recorded in the audit log.

Args: gateway_id: UUID of the gateway to revoke.

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_idYes

TDQS

A4.8/5.0
Behavior5/5

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

Discloses that it is a write operation, recorded in audit log, and that the gateway loses ability to poll and existing jobs fail—no annotations to rely on, so description fully covers behavior.

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

Conciseness5/5

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

Four concise sentences; no fluff. Front-loaded with purpose, then effects and parameter description.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description covers all essential information: what it does, side effects, and parameter format.

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

Parameters5/5

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

With 0% schema description coverage, description adds meaning: specifies that gateway_id is a UUID, which is not in the schema beyond type string.

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

Purpose5/5

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

Clearly states the verb 'Revoke' and resource 'VibOps gateway', distinguishing it from sibling tools like register_gateway and list_gateways.

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

Usage Guidelines4/5

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

Describes the effect (immediate loss of polling, failure of existing jobs) and that it is a write operation, but does not explicitly state when to use or avoid this tool versus alternatives.

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

deploy_modelA

Deploy an AI model onto a GPU cluster.

Use this for standard model deployments. For custom Helm chart deployments, use helm_upgrade instead.

Write operation — recorded in the audit log.

Args: cluster_name: Target cluster name. model_name: Model identifier (e.g. llama3:8b, mistral:7b). namespace: Kubernetes namespace (default: 'default'). replicas: Number of replicas (default 1). gpu_count: Number of GPUs to allocate per replica (optional). image: Override the default container image (optional). env: Environment variables to inject into the container (optional). gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
envNo
imageNo
replicasNo
gpu_countNo
namespaceNodefault
gateway_idNo
model_nameYes
cluster_nameYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description discloses that it is a write operation ('recorded in the audit log'), which is key behavioral information. However, it could further detail attributes like idempotency or potential side effects.

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

Conciseness5/5

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

The description is well-structured with a brief overview, usage guidance, behavioral note, and parameter breakdown. Every sentence serves a purpose without unnecessary fluff.

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

Completeness5/5

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

For a tool with 8 parameters (2 required) and no output schema or annotations, the description provides sufficient context: purpose, usage, behavior, and parameter details, making it complete for correct invocation.

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

Parameters5/5

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

Despite 0% schema description coverage, the description includes a comprehensive 'Args' section that explains each parameter's meaning and usage (e.g., gateway_id disambiguation, env injection), 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.

Purpose5/5

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

The description clearly states the tool's action ('Deploy an AI model onto a GPU cluster') and distinguishes it from the sibling tool helm_upgrade for custom Helm chart deployments, providing a specific verb and resource.

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

Usage Guidelines5/5

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

Explicitly states when to use ('standard model deployments') and when not to (custom Helm deployments, directing to helm_upgrade), and notes that it is a write operation recorded in the audit log.

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

evaluate_jobA

Trigger an LLM-as-judge evaluation of a completed job against a rubric.

The evaluation runs asynchronously: the judge LLM scores the job's input/output against each criterion in the rubric and produces a numeric score with a textual justification. Results are retrievable via get_job_evaluations.

Write operation — recorded in the audit log.

Args: job_id: UUID of the job to evaluate (must be in "success" or "failed" state). rubric_id: UUID of the rubric to apply (from list_eval_rubrics).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
rubric_idYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so the description carries the full burden. It describes the operation as a write action recorded in the audit log, and notes asynchronous execution. Does not mention rate limits or other side effects, but covers key behavioral traits.

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

Conciseness5/5

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

Description is concise with two main sentences plus an Args block. No superfluous text, every sentence adds value. Front-loaded with the core action.

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

Completeness4/5

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

The tool triggers an async evaluation and does not return results directly; the description correctly points to get_job_evaluations for results. Given absence of output schema, this is sufficient. The description covers inputs, behavior, and post-operation steps.

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

Parameters4/5

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

Schema coverage is 0%, so description must compensate. It adds meaning to job_id by noting it must be a UUID of a job in 'success' or 'failed' state, and to rubric_id by referencing list_eval_rubrics. This goes beyond the bare schema.

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

Purpose5/5

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

The description uses specific verb-resource pairing: 'Trigger an LLM-as-judge evaluation of a completed job against a rubric.' It clearly distinguishes from siblings like get_job_evaluations and list_eval_rubrics.

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

Usage Guidelines4/5

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

The description explains that the evaluation runs asynchronously with results retrievable via get_job_evaluations, and specifies required job states ('success' or 'failed'). While it doesn't explicitly state when not to use, the context is clear.

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

generate_compliance_reportA

Trigger generation of a compliance report by analysing the audit log.

Generation is asynchronous — this call returns immediately with a report object in "pending" status. Poll get_compliance_report until status is "ready". Generation time depends on audit log volume for the period.

Write operation — recorded in the audit log.

Args: report_type: Compliance framework — "soc2", "gdpr", or "hipaa". period: Time period to analyse. Formats accepted: "2026-Q1" (quarter), "2026-05" (month), "2026" (full year).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYes
report_typeYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that this is a write operation recorded in the audit log and that generation is asynchronous. This adds significant behavioral context beyond the basic trigger action, though it could also mention idempotency or potential errors.

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

Conciseness5/5

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

The description is concise (~120 words) and well-structured. It opens with a clear purpose statement, follows with key behavioral notes (async, write operation), and ends with parameter details in an Args 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.

Completeness4/5

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

Given the lack of output schema and annotations, the description covers the essential aspects: asynchronous behavior, parameter semantics, and polling instruction. It does not address error handling, rate limits, or what happens on invalid input. However, it references a sibling tool (get_compliance_report) for status polling, which aids agent understanding.

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

Parameters5/5

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

The input schema only provides parameter names and types (string). The description adds critical semantic detail: valid values for report_type ('soc2', 'gdpr', 'hipaa') and the exact format for period (e.g., '2026-Q1', '2026-05', '2026'). This compensates entirely for the 0% schema description coverage.

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

Purpose5/5

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

The description clearly states the action ('trigger generation'), the resource ('compliance report'), and the method ('by analysing the audit log'). It also distinguishes from sibling tools by noting the asynchronous nature and the need to poll get_compliance_report.

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

Usage Guidelines4/5

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

The description provides explicit guidance: the tool returns immediately with a pending report, and the agent should poll get_compliance_report until ready. It mentions dependence on audit log volume for generation time, implying variable latency. However, it does not explicitly state when not to use this tool or mention alternatives like list_compliance_reports.

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

get_agent_budgetB

Return the inference budget for a specific agent — monthly limit, current spend, and enforcement action (reject/warn).

Args: agent_id: The agent identifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

TDQS

B3.2/5.0
Behavior2/5

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 tool is read-only, authorization requirements, or error handling. It only implies a safe read operation without explicit confirmation.

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

Conciseness5/5

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

The description is very concise, with two sentences and a parameter listing. No unnecessary information.

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

Completeness3/5

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

Given the low complexity (one parameter, no output schema), the description covers the basic purpose but lacks return format details and distinction from similar tools like get_agent_usage or get_budget.

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

Parameters2/5

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

With 0% schema description coverage, the description adds minimal value by restating 'agent_id: The agent identifier.' No further details on format, source, or constraints are provided.

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

Purpose5/5

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

The description clearly states the tool returns the inference budget for a specific agent, listing specific fields (monthly limit, current spend, enforcement action). It distinguishes itself from siblings like get_agent_usage and get_budget by focusing on budget details.

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

Usage Guidelines2/5

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 (e.g., get_budget, get_agent_usage). The description does not provide context for appropriate usage or prerequisites.

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

get_agent_dependenciesA

Return the dependency edges for a single agent.

Shows what models, connectors and sub-agents this agent depends on, with call counts and timestamps. Use get_agent_dependency_graph for the full organisation-wide view.

Args: agent_id: ID or name of the agent (as registered in the tool catalogue).

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. While 'Return' implies a read-only operation, the description does not explicitly state that the tool is non-destructive, nor does it mention any side effects, rate limits, or permission requirements. The information about return data (call counts, timestamps) is helpful but falls short of full transparency.

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

Conciseness5/5

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

The description is extremely concise: three sentences covering purpose, details, and usage guidance. It front-loads the core action and includes a clear 'Args' section for the parameter. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the absence of an output schema, the description adequately explains what the tool returns: dependency edges with specific elements (models, connectors, sub-agents) and metadata (call counts, timestamps). For a simple retrieval tool, this is sufficient, though a brief mention of the output structure (e.g., list of edges) would increase completeness.

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

Parameters4/5

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

The input schema provides no description for the required 'agent_id' parameter (0% schema description coverage). The description adds meaning by explaining that the parameter accepts 'ID or name of the agent (as registered in the tool catalogue)', which goes beyond the schema's minimal 'Agent Id' title.

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

Purpose5/5

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

The description specifies that the tool 'returns dependency edges for a single agent' and lists what it shows (models, connectors, sub-agents, call counts, timestamps). It clearly distinguishes the tool from the sibling 'get_agent_dependency_graph' by stating the latter is for the 'full organisation-wide view'.

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

Usage Guidelines5/5

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

The description explicitly states, 'Use get_agent_dependency_graph for the full organisation-wide view,' providing clear guidance on when to use this tool versus the alternative. This helps the agent make an informed selection.

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

get_agent_dependency_graphA

Return the full directed dependency graph for all agents in the organisation.

Edges represent runtime relationships: agent→model (which LLM an agent calls), agent→connector (which data sources it uses), agent→agent (which sub-agents it orchestrates). Each edge records call_count, first_seen and last_seen timestamps.

Key use case: impact analysis — "if I replace this LLM model, which agents are affected and how frequently do they call it?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool returns a directed graph with edges recording call_count, first_seen, and last_seen timestamps. It does not mention permissions, rate limits, or potential performance impact, but the read-only nature is implied. Overall, good transparency but could note if the graph is expensive to compute.

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

Conciseness5/5

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

The description is extremely concise: two short paragraphs, no filler. The purpose is front-loaded in the first sentence. Every sentence adds value: output definition and use case. Ideal structure for quick scanning.

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

Completeness4/5

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

For a zero-parameter tool with no output schema or annotations, the description covers the purpose, output details, and a concrete use case. It is sufficient for an agent to decide to use it. Missing a note on performance or when not to use, but overall complete given the tool's simplicity.

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

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100%, so baseline is 4. The description adds value by explaining the edge structure and fields beyond what the schema provides (which is empty). No further parameter semantics needed.

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

Purpose5/5

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

The description clearly states 'Return the full directed dependency graph for all agents in the organisation' with specific verb and resource. It distinguishes from sibling tools by detailing edge types (agent→model, agent→connector, agent→agent) and the use case of impact analysis, which is not mentioned in any sibling tool.

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

Usage Guidelines4/5

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

The description explicitly mentions a key use case: 'impact analysis — if I replace this LLM model, which agents are affected and how frequently do they call it?' This provides clear context for when to use. However, it does not explicitly state when not to use or compare with sibling tools like get_agent_dependencies, which might offer a simpler view.

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

get_agent_model_rulesA

List all active agent model access rules for the organisation.

Rules control which LLM models each agent is allowed to use. Uses glob patterns for agent_id matching (e.g. "data-pipeline-") and model matching (e.g. "llama-"). Deny takes precedence over allow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses key behaviors: it lists active rules, uses glob patterns for matching, and notes that deny takes precedence over allow. No annotations exist, so the description carries the full burden and does so adequately.

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

Conciseness5/5

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

The description is extremely concise, with two short sentences and a phrase, all front-loaded with the main action. No wasted words.

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

Completeness4/5

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

Given no parameters, no output schema, and no annotations, the description covers the tool's purpose and behavioral aspects sufficiently. It is complete for a simple list operation.

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

Parameters4/5

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

There are zero parameters, so baseline is 4. The description does not need to add parameter information beyond the empty schema, and it does not attempt to do so.

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

Purpose5/5

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

The description clearly states it lists all active agent model access rules, with specific details about controlling LLM model usage via glob patterns. It distinguishes itself from sibling get tools by focusing on agent model rules.

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

Usage Guidelines3/5

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

The description implies usage for listing rules but does not explicitly state when to use it versus alternatives or when not to use it. No exclusion criteria are provided.

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

get_agent_usageA

Return LLM inference usage aggregated by agent — token consumption, GPU cost, and request counts. Use this to understand which AI agents are consuming the most inference resources and how costs distribute across teams.

This is the only tool that bridges agent-level identity with GPU-level cost. Typical questions it answers:

  • "Which agent costs the most in GPU this month?"

  • "How much does the pricing agent spend on Llama-70B vs Mistral-7B?"

  • "Which team is over budget on LLM inference?"

Args: period: Lookback period — "7d", "30d", or "mtd" (month-to-date). Default "30d". agent_id: Filter to a specific agent (optional). team: Filter to a specific team (optional). model: Filter to a specific LLM model (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNo
modelNo
periodNo30d
agent_idNo

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the metrics returned and parameter semantics, but lacks details on output format, pagination, or authorization requirements. Adequate but not comprehensive.

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

Conciseness4/5

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

Well-structured: purpose, uniqueness, example questions, then parameters. Slightly long due to question list, but each sentence adds value. Front-loaded with essential information.

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

Completeness4/5

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

Covers purpose, metrics, parameters, and use cases. Lacks explicit output schema description, but output can be inferred. Adequate for tool selection and invocation given no output schema.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates by explaining each parameter: period with examples ('7d', '30d', 'mtd'), agent_id, team, model as optional filters. Adds meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Return' and resource 'LLM inference usage aggregated by agent' with specific metrics (token consumption, GPU cost, request counts). It distinguishes from siblings by claiming to be the only tool bridging agent-level identity with GPU-level cost, which is supported by typical questions. No tautology.

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

Usage Guidelines4/5

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

The description provides explicit use cases (e.g., 'which AI agents are consuming the most inference resources') and typical questions. It implicitly differentiates from alternatives by stating uniqueness, but does not list specific siblings or when not to use. Clear context, no exclusions.

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

get_agent_usage_detailA

Return detailed LLM inference usage for a specific agent — daily breakdown, model distribution, cost trend, and optimisation recommendations.

Use after get_agent_usage identifies an agent of interest. Shows:

  • Daily request count, token usage, and cost over the last 30 days

  • Breakdown by LLM model (which models this agent uses and how much each costs)

  • Cost trend (increasing / stable / decreasing)

Args: agent_id: The agent identifier (as reported via X-VibOps-Agent-Id header).

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

TDQS

A4.3/5.0
Behavior3/5

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 implies a read operation by stating 'Return detailed LLM inference usage' and describes the output (daily breakdown, cost trend). It does not explicitly declare read-only or disclose other behavioral traits like auth requirements or rate limits.

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

Conciseness5/5

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

The description is concise, front-loaded with the primary action, lists output details, and includes a clear 'Args' section. Every sentence adds value with no redundancy.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description adequately explains what the tool does and what it returns (daily breakdown, model distribution, cost trend, recommendations). It could specify if data is historical or real-time, but overall it is sufficient.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates by explaining the parameter 'agent_id' as 'The agent identifier (as reported via X-VibOps-Agent-Id header).' This adds meaningful context beyond the schema's minimal title.

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

Purpose5/5

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

The description uses specific verbs ('Return detailed LLM inference usage') and resources ('for a specific agent'). It clearly distinguishes from sibling tool 'get_agent_usage' by stating 'Use after get_agent_usage identifies an agent of interest.'

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

Usage Guidelines4/5

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

The description explicitly states the tool should be used after 'get_agent_usage' identifies an agent, providing clear context. However, it does not mention when not to use it or alternative tools beyond that.

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

get_ai_act_scoreA

Return the organisation's overall AI Act compliance score (0–100).

Score is the weighted average of applicable controls: compliant=1.0, partial=0.5, non_compliant=0.0. Controls marked not_applicable are excluded from the denominator so they do not penalise the score.

Use list_ai_act_controls to see per-article breakdown and identify gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

The description explains the scoring methodology in detail: weighted average with control values (compliant=1.0, partial=0.5, non_compliant=0.0) and exclusion of not_applicable controls, which is behavioral context beyond annotations (none provided).

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

Conciseness5/5

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

Three sentences: first states the action and output, second explains calculation, third provides companion tool. No wasted words, front-loaded.

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

Completeness5/5

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

Given no parameters and no output schema, the description fully covers what the tool does, how it computes the score, and how to get detailed breakdown, making it complete for an AI agent.

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

Parameters4/5

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

Input schema has 0 parameters (100% coverage), so the baseline is 4. The description does not add parameter info but explains the return value semantics, which is sufficient.

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

Purpose5/5

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

The description clearly states the tool returns the overall AI Act compliance score (0–100) and distinguishes it from the sibling tool list_ai_act_controls by mentioning it provides per-article breakdown.

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

Usage Guidelines5/5

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

It explicitly recommends using list_ai_act_controls to see per-article breakdown and identify gaps, providing clear context on when to use this tool versus the alternative.

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

get_budgetA

Return the current GPU budget configuration and consumption for the organisation.

Shows budget limits (tokens, cost in USD/EUR), current consumption for the active period, percentage used, and the behaviour configured at the limit (queue / throttle / reject). Use set_cluster_rate to configure per-GPU hourly rates before relying on cost figures.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

No annotations exist, but the description fully discloses what the tool returns and its dependency on set_cluster_rate for accurate cost data. No hidden behavior.

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

Conciseness5/5

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

Three concise sentences: purpose, details, and prerequisite. No redundancy, well-structured.

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

Completeness5/5

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

For a parameterless read tool, the description covers all relevant aspects: what it shows (limits, consumption, percentage, behavior), scope (organization), and a related tool. No output schema is needed given the explicit listing.

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

Parameters4/5

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

Zero parameters, so baseline 4. The description explains the output fields, adding value beyond the empty schema.

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

Purpose5/5

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

The description clearly states the tool returns GPU budget configuration and consumption for the organization, listing specific details like limits, consumption, percentage, and behavior. It distinguishes from siblings like get_agent_budget by context.

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

Usage Guidelines4/5

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

Provides guidance to use set_cluster_rate before relying on cost figures, implying the tool's dependency. However, it does not explicitly differentiate from alternatives like get_agent_budget or get_chargeback.

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

get_chargebackA

Return the chargeback report for a given month, broken down by tenant and agent.

Chargeback allocates GPU costs to cost centres based on elapsed_hours × gpu_count × ClusterRate per workload. Useful for inter-department billing or to validate cloud invoices against actual AI workload consumption.

Args: year: Four-digit year (e.g. 2026). month: Month number 1–12 (e.g. 5 for May).

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
monthYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the cost allocation formula (elapsed_hours × gpu_count × ClusterRate per workload) and the report's breakdown, which are key behavioral details. No contradiction with annotations (none present).

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

Conciseness5/5

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

The description is concise with two short paragraphs: one summary and one argument list. Every sentence adds value, including the formula and usage context. No unnecessary text.

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

Completeness5/5

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

Given the tool has only two required parameters and no output schema, the description is complete. It explains what the report is, how it is computed, and why it is useful. No gaps in understanding the tool's purpose or execution.

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

Parameters5/5

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

With schema coverage 0%, the description compensates fully by providing format details (four-digit year, month 1–12) and concrete examples (e.g., 2026, 5 for May). This adds value beyond the schema's basic type definitions.

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

Purpose5/5

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

The description clearly states it returns the chargeback report for a given month, broken down by tenant and agent. It explains the formula and use cases, distinguishing it from sibling tools that handle billing or reporting differently.

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

Usage Guidelines4/5

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

The description explicitly mentions it is useful for inter-department billing or validating cloud invoices, indicating when to use it. It does not explicitly state when not to use it or list alternatives, but the context is clear enough.

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

get_cluster_deploymentsA

Return live Kubernetes deployment status for a cluster, including replica counts, pod health, and resource usage. Polls the cluster via the VibOps gateway (up to 20s).

Call this when investigating deployment health, replica counts, or pod failures.

Args: cluster_name: Name of the cluster as returned by list_clusters. namespace: Restrict results to a single namespace (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceNo
cluster_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description fully informs about behavior. It notes that the tool 'Polls the cluster via the VibOps gateway (up to 20s),' alerting the agent to potential latency and live connection. This is valuable transparency beyond a simple getter.

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

Conciseness5/5

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

The description is concise: a single opening sentence defining the tool, followed by a behavior note and usage guidance. The Args section is structured cleanly. Every sentence adds value; no redundancy.

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

Completeness4/5

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

For a tool with 2 params and no output schema, the description covers the return type (replica counts, pod health, resource usage), the polling mechanism, and param usage. It is adequate; missing details like pagination or error cases are minor given the simplicity.

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

Parameters4/5

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

Schema coverage is 0%, but the description adds meaningful parameter descriptions: 'cluster_name' is tied to 'list_clusters' output, and 'namespace' is explained as restricting results to a single namespace. This provides context the schema alone lacks.

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

Purpose5/5

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

The description explicitly states it returns 'live Kubernetes deployment status for a cluster, including replica counts, pod health, and resource usage.' The verb 'return' and specific resource 'deployment status' make the purpose clear. It distinguishes from siblings like 'run_kubectl' and 'scale_deployment' by focusing on read-only status.

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

Usage Guidelines4/5

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

The description advises calling it 'when investigating deployment health, replica counts, or pod failures.' This provides clear context for usage. No explicit when-not or alternative tools are mentioned, but the guidance is sufficient for decision-making.

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

get_cluster_rateA

Return the configured GPU cost rate for a cluster.

Used to verify the rate before interpreting get_cost_estimate results. To set or update the rate, use set_cluster_rate.

Args: cluster_name: Name of the cluster.

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_nameYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations are absent, so the description bears full burden. It does not mention behavioral traits like read-only nature or idempotency. However, the tool name 'get' implies a read operation, and for a simple retrieval, the omission is acceptable but not ideal.

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

Conciseness5/5

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

The description is concise: three sentences, front-loaded with purpose, then usage, then parameter. Every sentence earns its place with no redundancy.

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

Completeness5/5

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

Given the tool is a simple one-parameter getter with no output schema, the description is complete. It explains what the tool does, when to use it, and the parameter meaning. No gaps.

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

Parameters3/5

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

Schema coverage is 0%, meaning the schema only provides name and type without description. The description adds 'Name of the cluster' for the single parameter, which is basic but adds clarity. With low coverage, the description compensates minimally.

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

Purpose5/5

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

Clearly states 'Return the configured GPU cost rate for a cluster.' The verb 'Return' and resource 'GPU cost rate for a cluster' are specific. Distinguishes from siblings like set_cluster_rate and get_cost_estimate by mentioning them in the description.

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

Usage Guidelines5/5

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

Explicitly says 'Used to verify the rate before interpreting get_cost_estimate results. To set or update the rate, use set_cluster_rate.' This provides clear when-to-use guidance and an alternative tool.

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

get_compliance_reportA

Retrieve a compliance report by ID, including its findings once ready.

Poll this after generate_compliance_report until status == "ready". The "summary" field contains per-control findings, counts of passing / failing events, and remediation recommendations.

Args: report_id: UUID of the report (from generate_compliance_report or list_compliance_reports).

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but the description discloses polling behavior and return fields (status, summary). Could mention error handling or authentication needs.

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

Conciseness5/5

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

Five concise sentences, front-loaded purpose, no wasted words. Structured with Args section.

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

Completeness4/5

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

Given no output schema, the description explains key return fields (status, summary). Lacks mention of error responses or pagination, but sufficient for a simple poll tool.

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

Parameters4/5

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

With 0% schema coverage, the description adds meaning by specifying report_id is a UUID from other tools, compensating well for the bare schema.

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

Purpose5/5

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

The description clearly states it retrieves a compliance report by ID, distinguishing it from sibling tools like generate_compliance_report and list_compliance_reports.

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

Usage Guidelines4/5

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

It explicitly instructs to poll after generate_compliance_report until status=='ready', and explains the summary field. Misses explicit when-not-to-use scenarios.

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

get_cost_estimateA

Return estimated GPU spend for the last N hours.

Requires cost rates to be configured per cluster (use set_cluster_rate). Returns null costs if no rates are configured. For GPU utilisation data without cost, use get_gpu_metrics.

Args: hours: Look-back window in hours (default 24).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that null costs are returned if rates not configured, and implies a read-only operation. For a simple tool, this is sufficient behavioral clarity.

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

Conciseness5/5

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

Description is three concise sentences plus a structured argument line. No wasted words; first sentence states purpose. Ideal length and front-loading.

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

Completeness4/5

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

Adequate for a simple tool with one parameter and no output schema. Covers purpose, parameter, edge case (null), and alternative. Could specify return format (e.g., currency) but not critical.

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

Parameters4/5

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

Schema has 0% coverage, so description must compensate. It explains the 'hours' parameter as 'Look-back window in hours (default 24)', adding meaningful context beyond the schema's type and default.

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

Purpose5/5

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

The description clearly states 'Return estimated GPU spend for the last N hours', specifying the verb (return), resource (GPU spend), and time window. It distinguishes from siblings like get_gpu_metrics by mentioning utilization data without cost.

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

Usage Guidelines5/5

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

Explicitly states when to use (cost rates configured) and when not (returns null if no rates). Provides an alternative tool (get_gpu_metrics) for utilization data without cost. Also mentions prerequisite (set_cluster_rate).

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

get_gpu_metricsA

Return hourly GPU utilisation time-series for the last N hours.

Use this to assess whether GPUs are idle, saturated, or trending toward failure. For cost implications of that utilisation, use get_cost_estimate. For a breakdown of what workloads are consuming the GPUs, use get_workload_breakdown.

Args: hours: Look-back window in hours (default 24, max 168).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, and the description does not disclose behavioral traits beyond stating it returns time-series data. It mentions the hours parameter with default and max, but lacks details on data source, update frequency, or any side effects. Adequate but not rich.

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

Conciseness5/5

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

Concise and well-structured: first sentence states the main action, then usage guidance, then parameter details. Every sentence adds value with minimal wordiness.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description is quite complete. It covers what it returns, when to use, and alternatives. A minor omission is the return format of the time series, but not critical.

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

Parameters4/5

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

The schema has 0% description coverage, but the description adds 'Look-back window in hours (default 24, max 168)', providing context beyond the schema's type and default.

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

Purpose5/5

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

The description states 'Return hourly GPU utilisation time-series for the last N hours' with a specific verb (Return) and resource (GPU utilisation time-series). It clearly distinguishes from siblings by naming alternatives for cost and workload breakdown.

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

Usage Guidelines5/5

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

Explicitly says when to use ('assess whether GPUs are idle, saturated, or trending toward failure') and provides alternatives: 'For cost implications... use get_cost_estimate. For a breakdown... use get_workload_breakdown.'

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

get_jobA

Return the details and result of a specific VibOps operation.

Call this to check whether a previously submitted action succeeded or failed, and to retrieve its output (kubectl stdout, Helm output, error message).

Args: job_id: Full UUID or short ID (first 8 characters) of the job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Discloses return types (kubectl stdout, Helm output, error message) but lacks info on auth, rate limits, or error handling for missing jobs.

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

Conciseness5/5

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

Five sentences, front-loaded with purpose, then usage, then parameter detail. No redundant or missing information. Efficiently structured.

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

Completeness4/5

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

Given no output schema, description adequately describes return values (details, result including stdout, Helm output, error message). Parameter is fully covered. Could mention response format but sufficient for a simple get operation.

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

Parameters4/5

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

Schema coverage is 0%, but description adds meaning by specifying job_id accepts 'Full UUID or short ID (first 8 characters)', which is helpful beyond the schema's plain string type.

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

Purpose4/5

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

Clearly states it returns details and results of a specific operation. Differentiates from list_jobs and other get_* siblings by emphasizing result output, but does not explicitly distinguish from get_job_evaluations or get_job_metrics.

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

Usage Guidelines4/5

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

Explicitly says 'Call this to check whether a previously submitted action succeeded or failed, and to retrieve its output.' Provides clear when-to-use but does not mention alternatives or when not to use it.

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

get_job_evaluationsA

Return all LLM-as-judge evaluation results for a specific job.

Each evaluation includes: rubric applied, overall score (0–10), per-criterion breakdown, textual justification from the judge LLM, evaluation timestamp and the provider used. A job may have multiple evaluations if different rubrics were applied or if it was re-evaluated.

Args: job_id: UUID of the job (from list_jobs or get_job).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the returned fields (rubric, score, justification, etc.) and that a job may have multiple evaluations. It does not explicitly state it is read-only or mention error handling, but the 'return' verb implies no side effects. Adequate but not exhaustive.

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

Conciseness5/5

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

The description is concise (two paragraphs), front-loaded with purpose, and lists output fields efficiently. No redundant information; every sentence adds value.

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

Completeness5/5

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

Given no output schema, the description thoroughly explains the returned data structure (rubric, score, breakdown, justification, timestamp, provider) and multiplicity. The tool is simple (one param), and the description is sufficient for correct usage.

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

Parameters4/5

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

With zero schema description coverage, the description adds meaning by specifying job_id is a UUID from list_jobs or get_job. This helps the agent know the expected format and source. The single parameter is well-documented.

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

Purpose5/5

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

The description clearly states it returns all LLM-as-judge evaluation results for a specific job, specifying the resource (evaluation results) and action (return). This distinguishes it from sibling tools like get_job (job info) and list_eval_rubrics (rubrics only).

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

Usage Guidelines4/5

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

The description explains that the tool is for querying evaluation results for a given job ID from list_jobs or get_job. It does not explicitly state when not to use it or mention alternatives like evaluate_job, but the use case is clear and straightforward.

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

get_job_metricsA

Return job execution SLIs for the last N hours: throughput, success rate, and p50/p95 latency broken down by action type.

Call this when the user asks whether operations are healthy, whether jobs are failing, or how long specific actions typically take. For individual job status, use get_job or list_jobs instead.

Response shape: summary.total — total jobs submitted summary.succeeded — jobs that completed successfully summary.failed — jobs that failed summary.in_flight — jobs currently pending or running summary.success_rate_pct — overall success rate (null if no jobs) by_action[].action — action name (scale_cluster, deploy_model, …) by_action[].p50_seconds — median execution time by_action[].p95_seconds — 95th-percentile execution time hourly[] — per-hour succeeded/failed counts for sparklines

Args: hours: Look-back window in hours (default 24, max 720).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo

TDQS

A4.3/5.0
Behavior3/5

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 describes the response shape and parameter behavior but does not explicitly state read-only nature, authentication needs, or data freshness. However, the response structure is detailed enough to compensate partially.

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

Conciseness4/5

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

The description is moderately sized with a clear structure: purpose, usage guidelines, response shape, and args. Every sentence is valuable, though the response shape could be slightly more concise.

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

Completeness4/5

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

Given one parameter, no output schema, and no annotations, the description is quite complete. It covers purpose, usage, parameter details, and response shape. It could add more about potential limits or performance but is adequate.

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

Parameters4/5

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

The schema has one parameter (hours) with 0% description coverage, but the description adds a default (24) and max (720) value, providing meaning beyond the schema. For a single parameter, this is sufficient.

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

Purpose5/5

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

The description clearly states it returns job execution SLIs (throughput, success rate, latency) for the last N hours, broken down by action type. This is specific and distinguishes from sibling tools like get_job (individual) and list_jobs (listing).

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

Usage Guidelines5/5

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

Explicitly tells when to call this tool (health/performance questions) and when not to (individual status -> get_job or list_jobs). Also provides clear context for use.

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

get_ldap_configA

Return the LDAP / Active Directory authentication configuration for the current organisation.

Shows whether LDAP is enabled, the server URL, bind DN, search base, search filter, JIT provisioning flag, and default role. The bind password is never returned — ldap_bind_password_set indicates whether one is stored.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the bind password is never returned, which is a critical behavioral trait. It also lists the config fields returned. Although it does not mention auth requirements or rate limits, for a simple read operation this is adequate.

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

Conciseness5/5

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

The description is four sentences, each adding value: first sentence states the action, second lists what is returned, third details the config fields, and fourth highlights the important exception about the bind password. No fluff, well-structured.

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

Completeness5/5

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

For a read-only tool with no parameters and no output schema, the description is complete. It tells the agent exactly what to expect: the config fields and that the bind password is not returned. No gaps remain for an agent to invoke this tool correctly.

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

Parameters4/5

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

There are no parameters in the schema, and schema description coverage is 100%. With zero parameters, the baseline is 4. The description does not need to provide param semantics, and it adds no unnecessary information.

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

Purpose5/5

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

The description explicitly states it returns the LDAP/AD authentication configuration for the current organization, with a specific verb ('Return') and resource ('LDAP / Active Directory authentication configuration'). It distinguishes from the sibling tool 'update_ldap_config' which is for modifications.

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

Usage Guidelines4/5

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

The description clearly indicates this tool is for viewing the current LDAP config, and the presence of 'update_ldap_config' as a sibling implies when to use this read tool vs the write counterpart. However, it does not explicitly mention when not to use it or provide alternatives, but the context is sufficient.

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

get_mttrA

Return Mean Time To Resolve (MTTR) for GPU alerts, broken down by cluster and severity.

Use this to assess operational reliability and incident response speed over time.

Args: hours: Look-back window in hours (default 168 = 7 days).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It describes the output but omits details about permissions, rate limits, side effects, or what happens with no data. Read-only nature is implied but not stated.

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

Conciseness5/5

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

The description is three concise sentences plus a bullet for the parameter, front-loaded with the main purpose, and free of unnecessary information.

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

Completeness4/5

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

Given the simple input schema (single optional parameter, no output schema, no annotations), the description covers the tool's purpose, output structure, and parameter meaning adequately, though missing behavioral details.

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

Parameters4/5

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

Despite a reported schema description coverage of 0%, the description explicitly explains the 'hours' parameter (look-back window in hours with default 168 = 7 days), adding context beyond the schema's type and default.

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

Purpose5/5

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

The description clearly states the tool returns Mean Time To Resolve (MTTR) for GPU alerts, broken down by cluster and severity, which is a specific metric distinct from sibling tools like get_gpu_metrics or resolve_anomaly.

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

Usage Guidelines3/5

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

The description provides a use case ('assess operational reliability and incident response speed over time') but does not explicitly state when to use this tool over alternatives or when not to use it.

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

get_open_anomaliesA

Return all currently open (unresolved) GPU anomalies across the fleet.

Use this for a quick fleet health check alongside list_alerts. An open anomaly means the triggering condition is still active. Resolution is automatic once the condition disappears, or manual via resolve_anomaly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Explains that anomalies are open/unresolved, condition is active, resolution is automatic or manual. Sufficient for a read list tool, though could mention snapshot nature.

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

Conciseness5/5

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

Three sentences, front-loaded purpose, no extraneous text. Every sentence adds value: purpose, usage guidance, behavioral context.

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

Completeness3/5

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

No output schema; description only says 'return all open anomalies'. Does not describe structure of returned data (e.g., fields like GPU ID, condition type). More detail would benefit the agent.

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

Parameters4/5

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

No parameters; baseline score of 4 applies per instructions. Description adds no param info, which is acceptable when schema coverage is 100% and no params exist.

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

Purpose5/5

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

Clearly states 'return all currently open GPU anomalies' with specific verb and resource. Distinguishes from siblings by mentioning 'use alongside list_alerts' and 'resolve_anomaly' for resolution.

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

Usage Guidelines4/5

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

Provides explicit usage context: 'quick fleet health check alongside list_alerts'. Implicitly not for resolving anomalies (via resolve_anomaly). However, does not differentiate from sibling list_anomalies.

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

get_policyA

Return the active policy configuration for the current organisation.

Policy controls: allowed LLM models, budget limits per agent, tool permission matrix, rate limits, escalation rules and default-deny behaviour. Changes take effect immediately on all active agents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It adds context about the policy controls and mentions that changes take effect immediately, which informs the agent about the dynamic nature of the policy. No contradictions.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action, followed by a concise enumeration of what the policy controls. Every sentence adds value with no wasted words.

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

Completeness4/5

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

Given no output schema or annotations, the description provides a good overview of the return content. It could briefly mention caching or freshness, but overall it's adequate for a zero-parameter read tool.

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

Parameters4/5

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

The tool has zero parameters, so the description need not add parameter info. It still benefits from a baseline score of 4, as it avoids missing information.

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

Purpose5/5

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

The description clearly states the tool returns the active policy configuration for the current organisation, listing specific controls (allowed models, budgets, tool permissions, etc.), which distinguishes it from other get_* tools in the sibling list.

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

Usage Guidelines3/5

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

While the purpose is clear, there is no explicit guidance on when to use this tool versus alternatives (e.g., other get_ tools). Usage is implied but not directly stated.

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

get_siem_configA

Return the SIEM push export configuration for the current organisation.

Shows the configured provider (splunk or datadog), the destination endpoint, and whether a token is stored. The token itself is never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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 token itself is never returned, which is a key behavioral trait. It also explains what is shown (provider, endpoint, token stored status), offering transparency beyond the empty schema.

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

Conciseness5/5

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

The description is extremely concise, with three sentences that front-load the purpose. Every sentence adds value, and there is no waste.

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

Completeness4/5

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

For a simple read operation with no parameters and no output schema, the description adequately explains what the tool returns and its behavioral guarantees. It could mention edge cases like an empty endpoint, but it is otherwise complete.

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

Parameters4/5

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

The input schema has no properties, so there are no parameters to document. The description does not need to add parameter information, but it implicitly confirms no input is required. This is sufficient for a parameterless tool.

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

Purpose5/5

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

The description clearly states 'Return the SIEM push export configuration for the current organisation.' It specifies the verb (return) and the resource (SIEM push export configuration), distinguishing it from sibling tools like update_siem_config and push_to_siem.

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

Usage Guidelines3/5

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

The description implies usage for checking configuration but does not explicitly state when to use this tool versus alternatives like update_siem_config or push_to_siem. No guidance on prerequisites or context is provided.

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

get_spend_trendA

Return GPU spend trend over the specified number of days.

Provides daily cost series per cluster and per tenant, enabling detection of cost regressions after new deployments. Anomalous spikes are flagged automatically. Requires cluster rates to be configured via set_cluster_rate.

Args: days: Lookback window in days (default 30, max 90).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that anomalous spikes are flagged automatically and that the tool requires configuration via set_cluster_rate. It could be more explicit that it is read-only, but the 'get' prefix and lack of modifications imply this.

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

Conciseness5/5

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

The description is concise, well-structured with a clear summary sentence followed by additional context and an arguments section. No unnecessary words.

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

Completeness4/5

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

For a simple one-parameter tool without output schema, the description covers the return structure (daily cost per cluster/tenant), use case, anomaly detection, and prerequisites. It could improve by mentioning response format, but it's sufficiently complete.

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

Parameters5/5

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

The input schema only defines a 'days' parameter with a default, but the description adds crucial semantics: it specifies a maximum of 90 days and clarifies the lookback window. 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.

Purpose5/5

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

The description clearly states it returns GPU spend trend over a specified number of days, providing daily cost series per cluster and per tenant. This distinguishes it from other get_* tools like get_budget or get_chargeback, which serve different purposes.

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

Usage Guidelines4/5

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

The description explicitly mentions a use case (detecting cost regressions after new deployments) and a prerequisite (requires cluster rates via set_cluster_rate). However, it does not compare to alternative tools or specify when not to use it, which keeps it from a higher score.

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

get_waste_analysisA

Return GPU waste analysis — idle resources consuming budget without doing work.

Identifies: GPU nodes with <10 % utilisation over the past 24 h, deployments with zero jobs in the past 7 days, over-provisioned replicas relative to queue depth. Each finding includes an estimated wasted cost and a recommended remediation action (scale down, suspend, or reassign).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries the full burden. It discloses the type of analysis and output (cost estimates, remediation actions), but does not mention whether it runs a fresh query or uses cached data, nor any potential side effects or access constraints.

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

Conciseness5/5

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

Three sentences clearly structured: first sentence states the high-level purpose, second lists identification criteria, third describes output. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Given zero parameters and no output schema, the description sufficiently explains what the tool returns and the criteria used. It also includes temporal specificity (24h, 7 days), making it mostly complete. Could ideally mention if it aggregates data across clusters or users, but not a major gap.

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

Parameters4/5

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

There are zero parameters, so the tool relies entirely on the description. The description adds substantial meaning by detailing what findings are returned and the nature of the output (cost estimates and remediation actions), compensating for the lack of parameters.

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

Purpose5/5

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

The description clearly states the tool returns GPU waste analysis of idle resources, specifying three identification criteria (GPU nodes with <10% utilization, deployments with zero jobs, over-provisioned replicas). This distinguishes it from sibling tools like get_gpu_metrics or get_spend_trend.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives, nor any exclusions or conditions. The purpose is implied but the description lacks direct recommendations for the agent.

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

get_workload_breakdownA

Return the distribution of GPU work by workload type for the last N hours. Types: inference | training | observation | operations | gitops | maintenance | other.

Use this to understand what your GPU fleet is being used for. For raw utilisation percentages, use get_gpu_metrics.

Args: hours: Look-back window in hours (default 24).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo

TDQS

A4.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It explains the output is a distribution by workload type and mentions the hours parameter, but does not detail output format, aggregation method, or edge cases (e.g., no data). Adequate but not comprehensive.

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

Conciseness5/5

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

Short, front-loaded with purpose, then usage guidance, then parameter details. No wasted sentences.

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

Completeness4/5

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

Given one parameter and no output schema, description covers purpose, usage, parameter meaning, and types. Missing return format details, but it's functional. Slightly incomplete.

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

Parameters5/5

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

Schema has 0% description coverage (only title 'Hours'). Description adds 'Look-back window in hours (default 24)', which fully explains the parameter beyond the schema. Compensates well.

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

Purpose5/5

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

The description clearly states the tool returns 'distribution of GPU work by workload type for the last N hours' and lists the specific types. It distinguishes from sibling get_gpu_metrics by mentioning raw utilization percentages.

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

Usage Guidelines5/5

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

Explicitly says 'Use this to understand what your GPU fleet is being used for' and 'For raw utilisation percentages, use get_gpu_metrics', providing clear when-to and when-not-to guidance with alternative named.

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

git_cloneA

Clone a git repository onto the VibOps gateway.

If cluster_name is provided, Kubernetes manifests found in the repository will be automatically applied to that cluster (kubectl apply). If cluster_name is omitted, the repository is cloned but nothing is applied.

Write operation — recorded in the audit log.

Args: repo_url: Git repository URL (HTTPS or SSH). branch: Branch to clone (default: main). cluster_name: If provided, apply manifests to this cluster after cloning. gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNomain
repo_urlYes
gateway_idNo
cluster_nameNo

TDQS

A4.3/5.0
Behavior4/5

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

Despite no annotations, the description discloses that the tool performs a write operation recorded in the audit log, and explains the conditional apply and gateway_id disambiguation. This goes beyond a simple 'clone' statement. Missing details like error handling or idempotency, but core behavioral traits are covered.

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

Conciseness5/5

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

The description is highly concise: one clear purpose sentence, concise conditional explanation, audit note, and bullet-style Args. Every sentence adds value with no redundancy. Structure is logical and front-loaded.

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

Completeness3/5

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

Given no output schema or annotations, the description should cover return values, error scenarios, and prerequisites. It explains the workflow but does not mention what the tool returns (e.g., success message, cloned directory path) or what happens on failure (e.g., invalid URL, permission issues). Adequate for basic use but incomplete for robust agent selection.

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

Parameters4/5

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

With 0% schema description coverage, the description's Args section adds essential meaning: repo_url is 'HTTPS or SSH', branch defaults to main, cluster_name triggers apply, gateway_id disambiguates. This compensates well for the schema's lack of descriptions, though some constraints (e.g., exact URL format) are not specified.

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

Purpose5/5

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

The description starts with a clear verb+resource statement: 'Clone a git repository onto the VibOps gateway.' It further explains the conditional behavior with cluster_name, distinguishing the tool's dual purpose (clone only vs. clone+apply). This purpose is distinct from sibling tools, which are mostly unrelated operations.

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

Usage Guidelines4/5

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

The description provides explicit context for when to include cluster_name (apply manifests) and when to include gateway_id (disambiguation for multi-gateway deployments). However, it does not explicitly state when to use this tool over alternatives, though no direct alternative exists among siblings. The conditional guidance is clear.

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

helm_uninstallA

Uninstall a Helm release from a cluster.

Removes all Kubernetes resources created by the release.

Write operation — recorded in the audit log.

Args: cluster_name: Target cluster. release_name: Name of the Helm release to remove. namespace: Kubernetes namespace (default: 'default'). gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceNodefault
gateway_idNo
cluster_nameYes
release_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool is a write operation recorded in the audit log and that it removes all Kubernetes resources created by the release. With no annotations provided, this adds valuable behavioral context, though it does not cover error cases or partial failures.

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

Conciseness5/5

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

The description is concise with two introductory sentences, a note on audit logging, and a bulleted list of arguments. Every sentence adds value with no redundancy.

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

Completeness5/5

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

For a destructive Helm operation with four parameters and no output schema, the description adequately covers purpose, behavioral impact, audit logging, and parameter semantics. No critical gaps remain.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully explains each parameter in the Args section, including the optional gateway_id and its disambiguation rule. This adds significant meaning beyond the schema's property names and defaults.

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

Purpose5/5

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

The description clearly states 'Uninstall a Helm release from a cluster.' It uses a specific verb (uninstall) and resource (Helm release), and distinguishes from sibling tools like helm_upgrade which performs upgrades.

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

Usage Guidelines3/5

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 (e.g., helm_upgrade). Usage is implied through the description of the operation, but no direct comparisons 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.

helm_upgradeA

Run helm upgrade --install for a chart on a cluster.

Use this for Helm chart deployments. For deploying standard AI models, use deploy_model instead.

Write operation — recorded in the audit log.

Args: cluster_name: Target cluster. release_name: Helm release name (created if it does not exist). chart: Helm chart reference (e.g. bitnami/nginx or ./charts/myapp). namespace: Kubernetes namespace (default: 'default'). values: Helm values to override (dict, optional). gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
chartYes
valuesNo
namespaceNodefault
gateway_idNo
cluster_nameYes
release_nameYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses it is a write operation recorded in audit logs, and for 'release_name' it notes it is created if not existing, implying idempotency. However, it does not describe other behavioral aspects such as whether the operation is reversible, if it triggers a rollout, or if it requires any specific permissions. The description provides functional details but lacks deeper behavioral context.

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

Conciseness4/5

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

The description is concise: a one-sentence purpose, one-sentence alternative, one-sentence behavioral note, then a structured argument list. It front-loads key information and avoids redundancy. However, the argument list could be slightly more compact, and some definitions are a bit verbose (e.g., gateway_id explanation). Overall, it is well-structured and efficient.

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

Completeness2/5

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

The tool has 6 parameters, no output schema, and is a Helm upgrade operation. The description explains inputs well but fails to describe the output or return value. Since no output schema exists, the agent needs to know what to expect (e.g., release status, success message). The description also omits potential side effects beyond audit logging (e.g., rollback behavior). This gap in completeness is significant for a complex operation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It provides clear, meaningful definitions for all 6 parameters, including examples for 'chart' (e.g., bitnami/nginx), default for 'namespace', and usage guidance for 'gateway_id' (when to omit/provide). This adds significant value beyond the schema titles. Missing type specification for 'values' (though implied) and no format for 'cluster_name' keeps it from a 5.

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

Purpose5/5

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

The description clearly states the tool runs 'helm upgrade --install for a chart on a cluster.' It specifies the verb (run helm upgrade --install) and resource (chart on a cluster). It also distinguishes from sibling 'deploy_model' by noting that for deploying standard AI models, that tool should be used instead. This makes the purpose specific and distinct.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this for Helm chart deployments' and provides an alternative: 'For deploying standard AI models, use deploy_model instead.' It also notes it's a write operation recorded in the audit log, which guides usage context. However, it does not mention exclusions like when not to use it beyond the AI model case, or prerequisites like needing cluster access, which would elevate to a 5.

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

list_agent_identitiesA

List all agent machine identities for the organisation.

Each identity has a name, key prefix (vib_…), creation date, last-used timestamp, rotation history, and revocation status. The raw key is never stored — only its SHA-256 hash is retained after creation.

Use create_agent_identity to issue a new identity for a service or agent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the raw key is never stored, only its SHA-256 hash is retained, which is a security-relevant behavioral trait. It also lists the fields returned (name, key prefix, dates, rotation history, revocation status). It does not mention permissions or side effects, but for a list operation, the disclosure is adequate.

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

Conciseness5/5

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

The description is three sentences long: the first states the primary purpose, the second details the fields, and the third provides a usage guideline for a sibling tool. Every sentence adds value without redundancy or wasted words.

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

Completeness5/5

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

Given the simplicity of the tool (0 parameters, no output schema), the description is complete. It explains the tool's function, the structure of each identity, and a behavioral note about key storage. It also mentions the sibling for creation, covering the necessary context for an agent to use the tool correctly.

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

Parameters4/5

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

The input schema has 0 parameters, so schema coverage is 100% and the baseline is 4. The description adds context about what each identity contains (e.g., key prefix, creation date, last-used timestamp, rotation history, revocation status, and the hash note), which helps the agent understand the output format despite no output schema.

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

Purpose5/5

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

The description clearly states 'List all agent machine identities' with a specific verb ('List') and resource ('agent machine identities'). It distinguishes from the sibling 'create_agent_identity' by being a read-only operation, and the purpose is unambiguous.

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

Usage Guidelines4/5

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

The description explicitly directs to use 'create_agent_identity' for issuing new identities, providing an alternative for a related operation. However, it does not explicitly mention when not to use this tool relative to other siblings like 'revoke_agent_identity' or 'rotate_agent_identity', though the purpose is clear enough to infer that this is for listing only.

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

list_ai_act_controlsA

List all AI Act compliance controls and their current status.

VibOps pre-seeds 6 articles: Art.9 (risk management), Art.12 (logging & traceability), Art.13 (transparency), Art.14 (human oversight), Art.15 (accuracy & robustness), Art.17 (quality management). Each control has a status (compliant / partial / non_compliant / not_applicable), optional notes, and an evidence URL.

Use get_ai_act_score to get the aggregated compliance percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

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

The description details the output structure (status, notes, evidence URL) but does not explicitly state the tool is read-only, though 'List all' implies no side effects. With no annotations provided, a more explicit declaration of non-destructiveness would be ideal.

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

Conciseness5/5

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

The description is two short paragraphs with no extraneous words. The first paragraph defines the tool's action and output, the second offers an alternative. Every sentence adds value, making it highly efficient.

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

Completeness5/5

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

Given no output schema and zero parameters, the description completely covers what the tool does, what it returns, and when to use an alternative. It provides sufficient context for an AI agent to select and invoke the tool correctly.

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

Parameters5/5

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

The input schema has no parameters, so schema_description_coverage is 100%. The description adds significant meaning by describing the pre-seeded articles and the output format, compensating fully for the empty schema and providing all necessary context.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'AI Act compliance controls', specifying what it returns (their status). It is distinct from sibling tools like get_ai_act_score (aggregated percentage) and update_ai_act_control (mutates controls), making purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly directs users to use get_ai_act_score for aggregated compliance percentage, providing clear when-to-use guidance vs alternatives. It also explains that 6 articles are pre-seeded, setting expectations for the tool's scope.

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

list_alertsA

List GPU infrastructure alerts (thermal throttling, OOM kills, low utilisation, hardware errors).

Call this when investigating performance degradation, unexpected restarts, or before making scaling decisions. Open alerts (resolved=False) indicate active issues.

Args: severity: Filter by severity — warning | critical. resolved: False for active alerts, True for resolved alerts. Omit for all.

ParametersJSON Schema
NameRequiredDescriptionDefault
resolvedNo
severityNo

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description must cover behavioral traits. It implies a read-only operation by being labeled 'list' and describes what alerts are listed. However, it does not explicitly state that the tool has no side effects or destructive potential, leaving slight ambiguity.

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

Conciseness5/5

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

The description is concise, using a clear two-paragraph structure: first paragraph states purpose and overall guidance, second paragraph lists parameter details in a compact args format. Every sentence adds value with no fluff.

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

Completeness4/5

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

The description covers purpose, usage, and parameter semantics adequately for a list tool with two optional parameters. However, since there is no output schema, a brief note on what the response contains (e.g., 'returns a list of alert objects with fields such as ...') would improve completeness slightly.

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

Parameters5/5

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

Despite 0% schema coverage, the description provides concrete semantic details for both parameters. It specifies valid values for severity ('warning | critical') and explains the meaning of resolved ('False for active alerts, True for resolved alerts. Omit for all.'), adding value beyond the schema's type-only definitions.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'GPU infrastructure alerts', with examples of alert types (thermal throttling, OOM kills, low utilisation, hardware errors). It distinguishes from sibling tools like list_anomalies by focusing on GPU-specific alerts.

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

Usage Guidelines5/5

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

Explicitly states when to call the tool: 'when investigating performance degradation, unexpected restarts, or before making scaling decisions.' Also explains the meaning of the resolved parameter ('Open alerts (resolved=False) indicate active issues'), providing clear usage context.

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

list_anomaliesA

List GPU anomalies detected by VibOps across all clusters.

Anomalies are detected automatically every 5 minutes: gpu_idle (<10 % utilisation), gpu_spike (>90 %), node_loss (node disappeared from scrape), utilization_drop (>30 pt drop in one window). Duplicates are suppressed — only one open event per anomaly type per cluster exists at a time.

Args: cluster_name: Filter by cluster name (optional). status: Filter by status — "open" or "resolved" (optional, returns all if omitted).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
cluster_nameNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully carries transparency. It clearly discloses deduplication behavior (only one open event per anomaly type per cluster) and lists the four anomaly types. It does not mention rate limits or authentication, but the non-destructive nature of listing is implied.

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

Conciseness5/5

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

The description is concise: two initial sentences plus an Args section. No unnecessary words. Structure is front-loaded with main action, then details, then parameter specs. Every sentence adds value.

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

Completeness4/5

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

Given no output schema and low schema coverage, the description adequately covers purpose, behavior, and parameters. It does not describe return format or pagination, which could be inferred. Still, for a listing tool, it is reasonably complete.

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

Parameters4/5

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

Despite 0% schema coverage, the description's Args section adds meaning beyond the schema: clarifying that cluster_name and status are filters, that status accepts 'open' or 'resolved', and that omitting status returns all. This compensates for the sparse schema.

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

Purpose5/5

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

The description clearly states the tool lists GPU anomalies detected by VibOps across all clusters. It specifies the verb 'list' and the resource 'GPU anomalies', distinguishing it from siblings like get_open_anomalies which likely returns only open anomalies. The presence of optional filters further refines purpose.

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

Usage Guidelines3/5

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

The description provides context on when anomalies are detected and their types, but does not explicitly guide when to use this tool versus alternatives like get_open_anomalies or list_alerts. The filtering info is helpful but lacks exclusionary criteria or alternative tool references.

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

list_audit_logsA

Query the immutable VibOps audit log.

Every operation (deploy, scale, policy change, identity rotation…) is recorded with full context: actor, org, cluster, parameters, result, duration, cost. Entries are HMAC-chained — use verify_audit_chain to confirm integrity.

Args: from_dt: Start of time window, ISO 8601 (e.g. "2026-05-01T00:00:00Z"). Optional. to_dt: End of time window, ISO 8601. Optional. action: Filter by action type (e.g. "helm_upgrade", "scale_cluster"). Optional. limit: Maximum number of entries to return (default 50, max 500).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
to_dtNo
actionNo
from_dtNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It explains the log is immutable and HMAC-chained, and details the recorded fields. However, it does not explicitly state that the tool is read-only or mention side effects. Still, the behavioral traits are clearly conveyed.

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

Conciseness4/5

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

The description is informative and front-loaded with purpose. The Args section adds necessary detail. Slightly verbose but every sentence adds value. Could be more concise, but still well-structured.

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

Completeness4/5

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

No output schema, but the description specifies the log fields (actor, org, cluster, etc.) and mentions integrity verification via verify_audit_chain. It covers the key aspects for a list tool. Missing explicit return format details, but sufficient for an agent to understand the output.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates by explaining each parameter in the Args section: from_dt, to_dt, action, limit, including formats and defaults. This adds significant meaning beyond the bare schema names.

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

Purpose5/5

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

The description clearly states it queries the immutable VibOps audit log, listing all operations with full context. It distinguishes itself from sibling tools like verify_audit_chain by focusing on querying rather than verification.

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

Usage Guidelines3/5

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

The description implies usage for auditing by describing the log's contents and filtering options, but does not explicitly state when to use this tool vs alternatives or provide when-not-to-use guidance. The context of sibling tools helps, but more direct guidance would improve it.

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

list_clustersA

List all clusters registered in VibOps, with current GPU utilisation summary.

Start with this tool when the user asks about available clusters or general fleet status. For raw kubeconfig contexts (including clusters not yet registered in VibOps), use list_kubectl_contexts instead.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states the tool lists clusters with a GPU summary, implying a read operation. However, it doesn't disclose potential costs, pagination, or what exactly 'GPU utilisation summary' entails. Lacks depth in behavioral traits beyond the basic action.

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

Conciseness5/5

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

Two sentences: first states purpose, second provides usage guidance. Front-loaded, no redundant words. Efficient and well-structured.

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

Completeness4/5

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

Given no parameters, no output schema, and no annotations, the description covers core functionality and usage boundaries. It mentions the output includes a GPU utilisation summary, which is valuable. Could be more complete by describing output structure, but it's sufficient for a simple list tool.

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

Parameters4/5

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

Tool has zero parameters, so schema coverage is 100%. Baseline score of 4 applies. Description adds no parameter-specific info, but none is needed.

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

Purpose5/5

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

Description clearly states the tool lists all clusters registered in VibOps along with GPU utilisation summary. It distinguishes from sibling tool list_kubectl_contexts by specifying it's for registered clusters, not raw kubeconfig contexts.

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

Usage Guidelines5/5

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

Explicitly tells the agent to start with this tool for available clusters or fleet status, and directs to list_kubectl_contexts for raw kubeconfig contexts, including unregistered clusters. Provides clear when-to-use and when-not-to-use guidance with an alternative.

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

list_compliance_reportsA

List generated compliance reports for the organisation.

Reports are generated asynchronously; status moves from "pending" to "ready" (or "failed") once the audit log analysis completes. Use get_compliance_report to retrieve the full findings once ready.

Args: report_type: Filter by framework — "soc2", "gdpr", or "hipaa" (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
report_typeNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided; description adds async behavior and status progression but lacks auth or rate limit details. Adequate for a read-only listing tool.

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

Conciseness5/5

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

Concise, front-loaded with purpose, uses docstring style. Every sentence adds value.

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

Completeness4/5

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

Given low complexity (1 param, no output schema), description covers async behavior, statuses, and cross-reference to get_compliance_report. Could mention output format but not necessary.

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

Parameters4/5

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

Schema coverage is 0%, but description specifies allowed values for report_type ('soc2', 'gdpr', 'hipaa'), adding meaning beyond the nullable string type.

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

Purpose5/5

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

Clearly states it lists compliance reports, distinguishing from sibling 'get_compliance_report' and 'generate_compliance_report'. Includes async behavior and status details.

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

Usage Guidelines4/5

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

Explains async nature and suggests using get_compliance_report for full findings. Provides filter options. No explicit when-not, but clear context.

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

list_eval_rubricsA

List LLM-as-judge evaluation rubrics defined for the organisation.

A rubric defines evaluation criteria (accuracy, safety, relevance…), a scoring grid (0–10 with justification), and the LLM provider used as judge (Claude, OpenAI, Ollama, Groq). Rubrics marked is_auto_scanner=true trigger automatically after every completed job.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided; description reveals auto-scanner behavior but does not explicitly state read-only nature or any security/permission requirements. 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.

Conciseness5/5

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

Two sentences: first states purpose, second adds details. No wasted words, front-loaded, and very concise.

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

Completeness4/5

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

Good coverage for a simple list tool with no output schema and no annotations. Missing details on potential implicit filters or ordering, but adequate overall.

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

Parameters4/5

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

No parameters in schema; description adds meaning by explaining what each rubric contains, providing context beyond the empty schema. Baseline 4 for 0 params.

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

Purpose5/5

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

The description clearly states 'List LLM-as-judge evaluation rubrics' with a specific verb and resource, and distinguishes from siblings by detailing what a rubric includes (criteria, scoring grid, LLM provider, auto-scanner flag).

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

Usage Guidelines3/5

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

Implies usage when needing to view available rubrics, but lacks explicit guidance on when not to use or alternatives like evaluate_job or get_job_evaluations.

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

list_gatewaysA

List all registered VibOps gateways and their connection status.

A gateway is a remote agent installed in the customer infrastructure that bridges VibOps Core to local Kubernetes clusters and cloud APIs. To list clusters managed by those gateways, use list_clusters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It indicates a read-only list operation without side effects. Could add details like real-time status freshness, but adequate for a simple list tool.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose. No unnecessary words or redundancy.

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

Completeness4/5

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

Given no output schema, description covers the operation's purpose and result (gateways with connection status). Could specify return format details, but sufficient for understanding.

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

Parameters4/5

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

No parameters exist (schema coverage 100%), so baseline is 4. Description does not need to add parameter meaning beyond what schema already provides.

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

Purpose5/5

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

Description states 'List all registered VibOps gateways and their connection status' with specific verb and resource. It also distinguishes from sibling tool list_clusters by explaining gateway role and directing to list_clusters for cluster listing.

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

Usage Guidelines5/5

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

Explicitly provides alternative usage: 'To list clusters managed by those gateways, use list_clusters.' This clearly informs when not to use this tool.

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

list_jobsA

List recent VibOps operations (scale, deploy, helm, kubectl...).

A VibOps job is not a Kubernetes Job — it represents any infrastructure operation submitted through VibOps. Use get_job to retrieve the full result of a specific operation.

Args: status: Filter by status — pending | running | success | failed. action: Filter by action type — scale_cluster | deploy_model | helm_upgrade | helm_uninstall | kubectl_exec | git_clone. limit: Maximum number of jobs to return (default 20, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
actionNo
statusNo

TDQS

A4/5.0
Behavior2/5

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 mentions default and max limit but does not disclose behavior such as pagination, ordering, security/permissions, or whether the operation is read-only (though implied). Lacks explicit assurance of safety.

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

Conciseness5/5

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

The description is short and front-loaded, starting with the core purpose. It uses a clear structure: summary, clarification, then parameter details. No unnecessary words.

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

Completeness4/5

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

Covers purpose, parameter details, and links to sibling get_job. However, lacks description of return format (fields, ordering) and any prerequisites or permissions. Given no output schema, more detail on return values would improve completeness.

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

Parameters4/5

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

The 'Args' section explains all three parameters with valid value lists for status and action, plus default/max for limit. Since schema coverage is 0%, the description adds significant meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'VibOps operations', and distinguishes itself from sibling tool 'get_job' by specifying it retrieves full results of a specific operation. It also clarifies that VibOps jobs are not Kubernetes Jobs.

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

Usage Guidelines4/5

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

Provides clear context for when to use this tool (listing recent operations) and when to use an alternative ('Use get_job to retrieve the full result of a specific operation'). Does not explicitly mention when not to use it, but the purpose is clear enough.

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

list_kubectl_contextsA

List raw kubectl contexts from the gateway's kubeconfig.

Use this only to discover clusters not yet registered in VibOps, or to debug context name mismatches. For normal cluster discovery, use list_clusters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are present, so the description carries full burden. It states the tool lists raw contexts from the gateway's kubeconfig, implying a read-only operation. For a single, param-free tool, this is clear and sufficient.

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

Conciseness5/5

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

Two concise sentences, each providing essential information: what it does and when to use it. No wasted words.

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

Completeness4/5

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

Given zero parameters, no output schema, and low complexity, the description covers purpose and usage context adequately. It could mention that output is a list of context names or structure, but is not necessary for a simple list tool.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%. Per evaluation rules, baseline is 4. No parameter information is needed, and the description adds no param details.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('raw kubectl contexts'), and differentiates from sibling tool list_clusters by targeting unregistered clusters or debugging mismatches.

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

Usage Guidelines5/5

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

Explicitly tells when to use this tool (discover unregistered clusters, debug mismatches) and when not (use list_clusters for normal discovery). Provides a direct alternative.

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

list_pipelinesA

List automation pipelines — named sequences of jobs that execute in order.

A pipeline is distinct from a single job: it orchestrates multiple operations (e.g. deploy to staging → health check → promote to production). To trigger a pipeline, use trigger_pipeline with its UUID.

Args: limit: Maximum number of pipelines to return (default 10, max 200).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.9/5.0
Behavior2/5

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

No annotations exist, so the description must compensate. It mentions limit default/max but omits pagination, ordering, and output structure. For a listing tool, 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.

Conciseness5/5

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

The description is concise and well-structured, front-loading the purpose and including only essential information in a few sentences.

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

Completeness3/5

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

Lacks output schema or description of return values. No mention of pagination or sorting, which is important for a list tool, but the single parameter is well-covered.

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

Parameters4/5

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

With 0% schema coverage, the description adds value by explaining the limit parameter's purpose and maximum, going beyond the schema's type and default.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'pipelines', and distinguishes pipelines from single jobs with a concrete example.

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

Usage Guidelines4/5

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

It explains the distinction from jobs and directs to trigger_pipeline for triggering, providing good context for when to use this tool, though it does not explicitly exclude alternatives like list_jobs.

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

list_providersA

List configured custom AI and GPU cloud providers (e.g. DGX Cloud, Scaleway, Outscale).

Providers extend VibOps with additional connectors beyond the built-in ones.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description takes full responsibility. It accurately describes a read-only listing operation with no side effects. However, it does not mention behavior when no providers are configured (e.g., empty list) or any potential errors, which would be helpful.

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

Conciseness5/5

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

The description consists of two short sentences. The first states the primary action and examples; the second adds context about providers' role. Every sentence is meaningful and front-loaded.

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

Completeness4/5

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

For a tool with no parameters and no output schema, the description is mostly complete. It explains what it lists and gives context. Lacks details on return format or error handling, but given low complexity, it is sufficient.

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

Parameters4/5

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

The input schema has no parameters (schema coverage 100%), so the baseline is 4. The description adds no parameter info because none exist, which is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists configured custom AI and GPU cloud providers, with examples. It distinguishes from sibling list tools that list other resources (e.g., agents, alerts, clusters), 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.

Usage Guidelines3/5

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

The description implies usage for viewing custom providers, but does not explicitly state when to use this tool versus alternatives, nor when not to use it. No exclusions or alternative tools are mentioned.

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

list_secretsA

List secret names and metadata stored in the VibOps vault. Values are never returned.

Use this to check which credentials are available before submitting jobs that require them. To store a new secret, use create_secret.

Args: search: Filter by name (optional substring match).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo

TDQS

A4.7/5.0
Behavior4/5

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

States 'Values are never returned', which is a key behavioral trait. No annotations provided, so description carries the burden. Does not cover permissions or rate limits, but adequately sets expectations 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.

Conciseness5/5

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

Three sentences, no fluff. Essential information presented in logical order: what, then when, then parameter details.

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

Completeness4/5

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

Adequate for a simple tool with one optional parameter and no output schema. Could mention return format of metadata, but not necessary. Good coverage of key aspects.

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

Parameters5/5

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

Single parameter 'search' has 0% schema coverage. Description adds meaning: 'Filter by name (optional substring match)'. Clearly explains its purpose and behavior beyond schema type.

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

Purpose5/5

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

Description clearly states verb 'list' and resource 'secret names and metadata' from VibOps vault. Distinguishes from siblings by specifying that values are never returned, and by naming create_secret as the alternative for storing.

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

Usage Guidelines5/5

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

Explicitly states when to use (check credentials before jobs) and when not to (use create_secret for storing). Names alternative tool create_secret.

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

push_to_siemA

Push audit log events to the configured SIEM (Splunk HEC or Datadog Logs API).

Sends matching audit rows to the SIEM in a single batched request. Returns the number of events pushed and the provider used. Requires org_admin role and a configured SIEM destination (update_siem_config).

The pull-based export (GET /audit/export?format=cef|leef|json) remains available as an alternative for batch ingestion.

Args: since: ISO 8601 start timestamp (e.g. 2026-06-01T00:00:00Z). Defaults to all history. until: ISO 8601 end timestamp. Defaults to now. action: Filter by action name (e.g. "scale_cluster", "deploy_model"). limit: Maximum number of events to push (default 10 000).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
untilNo
actionNo

TDQS

A4.2/5.0
Behavior3/5

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 batching, return fields (number of events, provider), and prerequisites. However, it does not explain error handling, idempotency, or behavior if SIEM is not configured.

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

Conciseness5/5

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

The description is well-structured with a clear first line, concise details, and a separate Args section. Every sentence adds value, and there is no redundancy.

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

Completeness4/5

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

Given 4 parameters, no output schema, and no annotations, the description covers purpose, parameters, prerequisites, and an alternative. It could be more explicit about the return format, but overall it is sufficiently complete.

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

Parameters4/5

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

Schema coverage is 0%, and the description adds significant meaning: 'since' is ISO 8601 start timestamp, 'until' is ISO 8601 end, 'action' filters by action name with examples, 'limit' has a default and description. This effectively compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool pushes audit log events to a configured SIEM (Splunk HEC or Datadog Logs API), specifies it sends matching rows in a single batched request, and returns the count and provider. It also distinguishes itself from the pull-based export alternative.

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

Usage Guidelines4/5

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

The description provides explicit context: requires org_admin role, requires configured SIEM destination via update_siem_config, and mentions the pull-based export as an alternative. However, it lacks explicit 'when not to use' instructions.

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

register_gatewayA

Register a new VibOps gateway (remote agent).

Returns a one-time bearer token to configure the gateway with — store it immediately, it cannot be retrieved again.

Write operation — recorded in the audit log.

Args: name: Human-readable name for the gateway (e.g. 'prod-vpc', 'eu-west-dc'). description: Optional description of the gateway's location or purpose. clusters: List of cluster names this gateway will manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
clustersNo
descriptionNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description reveals critical behaviors: the returned one-time token cannot be retrieved again, and the operation is audited. This adequately informs the agent about side effects and security considerations.

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

Conciseness5/5

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

The description is concise with a clear front-loaded purpose, followed by token storage warning, audit mention, and bullet-pointed parameter explanations. No redundancy.

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

Completeness4/5

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

The description covers the return value, token irreversibility, and audit logging. Without an output schema, it explains the main output. It could mention naming constraints or activation status, but is mostly sufficient.

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

Parameters4/5

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

Despite 0% schema description coverage, the description adds meaning to all three parameters. It gives an example for name, explains description's purpose, and clarifies clusters as a list of cluster names to manage. This compensates for the bare schema.

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

Purpose5/5

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

The description clearly states the tool registers a new VibOps gateway (remote agent) and distinguishes it from siblings like delete_gateway and list_gateways. The purpose is specific: creating a new resource and returning a one-time token.

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

Usage Guidelines3/5

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

The description indicates it's a write operation recorded in the audit log, implying it should be used when creating a gateway. However, it does not explicitly state when not to use it or provide alternatives among siblings.

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

registry_check_imageA

Check whether a specific image:tag exists in a container registry.

Returns exists=True/False without raising an error when the image is absent. Useful for pre-deployment checks and stale image detection.

Args: registry_type: Registry backend — "harbor", "ecr", or "gar". image: Image name with tag (e.g. "myproject/myapp:v1.2.3"). registry_url: Harbor base URL or ECR registry URI. username: Harbor username or registry token username. password: Harbor password or registry token. region: AWS region (ECR only). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYes
regionNo
passwordNo
usernameNo
gateway_idNo
registry_urlNo
registry_typeYes

TDQS

A4.1/5.0
Behavior3/5

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

The description discloses that it 'Returns exists=True/False without raising an error when the image is absent,' which is good behavioral information about safe, non-throwing behavior. However, it does not cover error cases (e.g., network issues, auth failures) or side effects. With no annotations provided, the description carries the full burden and is adequate but not exhaustive.

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

Conciseness4/5

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

The description is concise with a front-loaded purpose statement, followed by a clear list of parameters. It is efficient but the Args section could be slightly trimmed if schema descriptions were present. Still, it earns its place with no wasteful sentences.

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

Completeness4/5

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

Given no output schema, the description explains the return behavior (exists=True/False). It covers the essential behavior for a check tool with 7 parameters. However, it lacks details on error handling and connectivity issues, but overall it is sufficiently complete for the tool's complexity.

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

Parameters4/5

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 provides an Args section explaining each parameter (e.g., registry_type as 'harbor', 'ecr', or 'gar'; image format). This adds meaning beyond the schema, compensating for the lack of schema descriptions and clearly aiding correct invocation.

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

Purpose5/5

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

The description clearly states 'Check whether a specific image:tag exists in a container registry,' specifying the verb (check), resource (image:tag), and context (container registry). It distinguishes itself from sibling tools like registry_list_tags and registry_delete_tag by focusing on existence checking rather than listing or deleting.

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

Usage Guidelines4/5

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

The description mentions it is 'Useful for pre-deployment checks and stale image detection,' providing contextual usage guidance. While it does not explicitly exclude alternatives or mention when not to use it, the context is clear enough to differentiate from sibling tools.

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

registry_delete_tagA

Delete an image tag from a container registry. Destructive — requires confirmed=True.

Permanently removes the specified tag. The underlying image layers are deleted only if no other tag references them. Requires operator role in VibOps.

Write operation — recorded in the audit log.

Args: registry_type: Registry backend — "harbor", "ecr", or "gar". image: Image name with tag to delete (e.g. "myproject/myapp:old-tag"). registry_url: Harbor base URL or ECR registry URI. username: Harbor username or registry token username. password: Harbor password or registry token. region: AWS region (ECR only). confirmed: Must be True to proceed. Pass False (default) for a dry-run preview. gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYes
regionNo
passwordNo
usernameNo
confirmedNo
gateway_idNo
registry_urlNo
registry_typeYes

TDQS

A4.6/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses destructiveness, confirmed=True requirement, partial layer deletion behavior, operator role requirement, and audit logging. Extremely transparent.

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

Conciseness4/5

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

Well-structured with a summary line, behavioral notes, and an Args list. Every sentence adds value. Slightly lengthy but appropriate for the complexity.

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

Completeness4/5

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

Given 8 parameters, 0% schema coverage, and no output schema, the description thoroughly documents parameters, behavior, and prerequisites. Missing explicit error handling details, but overall comprehensive.

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

Parameters5/5

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

Input schema has no descriptions (0% coverage), but the description's Args section explains each parameter's meaning, format, and constraints (e.g., 'e.g. "myproject/myapp:old-tag"', 'Must be True to proceed'). Fully compensates for schema gaps.

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

Purpose5/5

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

The description clearly states 'Delete an image tag from a container registry' with a specific verb and resource, and contrasts with listing siblings like registry_list_tags.

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

Usage Guidelines4/5

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

Describes when to use (to delete a tag) and provides context (destructive, requires confirmed=True, write operation, audit log). Does not explicitly list alternatives but is clear enough.

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

registry_list_reposB

List repositories in a container registry (Harbor, ECR, or Google Artifact Registry).

Args: registry_type: Registry backend — "harbor", "ecr", or "gar". registry_url: Harbor base URL (e.g. https://registry.acme.com) or ECR registry URI. project: Harbor project name or GAR repository path prefix. username: Harbor username (or "AWS" for ECR token auth). password: Harbor password or registry token. region: AWS region (ECR only, e.g. us-east-1). limit: Maximum number of repositories to return (default 50). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
regionNo
projectNo
passwordNo
usernameNo
gateway_idNo
registry_urlNo
registry_typeYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully cover behavioral traits. It does not disclose whether authentication is required, whether the operation is read-only, rate limits, pagination behavior, or side effects. The 'limit' parameter suggests pagination but is not explained.

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

Conciseness4/5

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

The description is front-loaded with the main purpose and uses a structured list for parameters. While slightly verbose with the 'Args:' header, each line is concise. It earns a 4 for being well-organized and efficient.

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

Completeness2/5

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

Given 8 parameters, 0% schema coverage, and no output schema or annotations, the description is incomplete. It explains parameters but does not describe the return value (what is listed?), error conditions, prerequisites, or authentication flow. The 'gateway_id' parameter hints at a site context but is not elaborated.

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

Parameters4/5

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

Schema coverage is 0%, but the description includes a clear explanation for each parameter (e.g., 'Registry backend — "harbor", "ecr", or "gar".'). This adds significant meaning beyond the schema's type information. A score of 4 is warranted because all parameters are briefly described.

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

Purpose5/5

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

The description clearly states 'List repositories in a container registry (Harbor, ECR, or Google Artifact Registry).' This is a specific verb+resource combination, and it distinguishes from sibling tools like registry_list_tags and registry_check_image 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.

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. The description does not mention when-not-to-use or provide comparison with sibling tools. Usage is only implied by the list of parameters.

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

registry_list_tagsB

List all tags for a specific image in a container registry.

Args: registry_type: Registry backend — "harbor", "ecr", or "gar". image: Image name without tag (e.g. "myproject/myapp" for Harbor, repo name for ECR). registry_url: Harbor base URL or ECR registry URI. username: Harbor username or registry token username. password: Harbor password or registry token. region: AWS region (ECR only). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYes
regionNo
passwordNo
usernameNo
gateway_idNo
registry_urlNo
registry_typeYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavior beyond listing (e.g., idempotency, authentication needs, 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.

Conciseness4/5

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

Description is brief with a clear first sentence and structured Args list, but some lines are slightly wordy.

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

Completeness2/5

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

No output schema; description omits return value (list of tags) and does not fully specify parameter dependencies per registry type.

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

Parameters3/5

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

Description adds some meaning to parameters (e.g., registry_type backends, image format examples) but not all parameters are adequately explained; 0% schema coverage increases burden.

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

Purpose5/5

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

Description clearly states 'List all tags for a specific image in a container registry.' with specific verb and resource, easily distinguishable from siblings like registry_list_repos.

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

Usage Guidelines2/5

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., registry_list_repos, registry_check_image) or prerequisites.

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

resolve_anomalyA

Manually mark an anomaly as resolved.

Use when the underlying issue has been addressed outside VibOps (e.g. a workload was restarted manually). Automatic resolution still applies when the condition normalises on the next detection cycle.

Write operation — recorded in the audit log.

Args: anomaly_id: UUID of the anomaly to resolve (from list_anomalies). reason: Optional free-text explanation of how the issue was resolved.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
anomaly_idYes

TDQS

A4.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that it's a 'Write operation — recorded in the audit log' and notes that automatic resolution may still occur later, indicating it's not a permanent override. However, it does not mention permission requirements or potential side effects.

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

Conciseness5/5

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

The description is 7 sentences, each earning its place. The purpose is front-loaded in the first line, followed by usage guidance, behavioral notes, and parameter details. No redundant or vague statements.

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

Completeness5/5

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

Given 2 simple parameters, no output schema, and no annotations, the description covers the operation purpose, usage context, behavioral traits (write/audit), and parameter explanations. It is sufficiently complete for an AI agent to select and invoke the tool correctly.

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

Parameters5/5

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

Schema coverage is 0%, but the description's Args section adds meaningful context: anomaly_id is described as 'UUID of the anomaly to resolve (from list_anomalies)' and reason as 'Optional free-text explanation'. This provides origin and optionality beyond the raw schema types and titles.

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

Purpose5/5

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

The description clearly states 'Manually mark an anomaly as resolved', which uses a specific verb and resource. It distinguishes the tool from siblings like list_anomalies and get_open_anomalies by specifying it's a manual resolution action, and contrasts with automatic resolution.

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

Usage Guidelines5/5

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

Explicitly states 'Use when the underlying issue has been addressed outside VibOps' and explains that automatic resolution still applies otherwise. This provides clear when-to-use and when-not-to-use guidance, referencing the alternative automatic process.

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

revoke_agent_identityA

Permanently revoke an agent identity, blocking all future authentication.

Revocation is immediate and irreversible. The identity record is retained for audit purposes but the key is rejected on all subsequent API calls. Use rotate_agent_identity instead if you simply want to cycle the key.

Write operation — recorded in the audit log.

Args: identity_id: UUID of the identity to revoke (from list_agent_identities).

ParametersJSON Schema
NameRequiredDescriptionDefault
identity_idYes

TDQS

A4.5/5.0
Behavior4/5

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

The description explains that revocation is immediate, irreversible, retains the record for audit, and logs the write operation. However, it does not mention authentication requirements or impact on dependent resources.

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

Conciseness4/5

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

The description is well-structured with a clear opening, behavioral notes, and parameter list. It is concise but slightly verbose with the 'Args' block; still, every sentence adds value.

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

Completeness4/5

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

Given the tool's simplicity (one required param, no output schema), the description covers purpose, usage, behavior, and parameter semantics adequately. Minor omission: could mention success/error responses.

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

Parameters4/5

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

With 0% schema coverage, the description compensates by defining identity_id as a UUID and specifying its source (list_agent_identities). This adds meaningful context beyond the schema's 'string' type.

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

Purpose5/5

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

The description clearly states the tool permanently revokes an agent identity, blocking future authentication. It distinguishes itself from rotate_agent_identity, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool (permanent revocation) and when not to (use rotate_agent_identity for key cycling). It also notes that revocation is irreversible, aiding decision-making.

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

rotate_agent_identityA

Rotate the API key for an agent identity.

Generates a new key and immediately invalidates the previous one. The new raw key is returned ONCE in this response — store it securely. The identity itself (ID, name, history) is preserved; only the key changes.

Use this for scheduled key rotation or if a key is suspected of being compromised. To permanently disable an identity, use revoke_agent_identity.

Write operation — recorded in the audit log.

Args: identity_id: UUID of the identity to rotate (from list_agent_identities).

ParametersJSON Schema
NameRequiredDescriptionDefault
identity_idYes

TDQS

A5/5.0
Behavior5/5

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

The description discloses key behavioral traits: generates new key, invalidates previous one, new key returned once, write operation recorded in audit log. Since no annotations are provided, the description fully covers transparency.

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

Conciseness5/5

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

Description is concise, front-loaded with purpose, and every sentence adds value. No redundancy or unnecessary words.

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

Completeness5/5

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

Given the simple single-parameter tool with no output schema, the description covers all necessary context: what it does, when to use, parameter meaning, and note about storing the key. It is sufficient for an agent to correctly invoke the tool.

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

Parameters5/5

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

The only parameter 'identity_id' is described as 'UUID of the identity to rotate (from list_agent_identities)', providing source and type beyond the empty schema description. Schema coverage is 0%, so description compensates fully.

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

Purpose5/5

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

The description clearly states the action ('Rotate the API key for an agent identity') and distinguishes from the sibling tool 'revoke_agent_identity' by noting that identity itself is preserved.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('scheduled key rotation or if a key is suspected of being compromised') and provides an alternative ('revoke_agent_identity' for permanent disablement).

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

run_kubectlA

Execute a kubectl command on a cluster.

Use this only for operations not covered by dedicated tools. Prefer scale_deployment to scale pods, deploy_model for model deployments, and helm_upgrade or helm_uninstall for Helm operations.

Suitable for: get, describe, logs, top, rollout, label, annotate. Avoid destructive commands (delete namespace, delete deployment) — use dedicated VibOps tools or submit a job via the API instead.

Write operations executed via this tool are recorded in the audit log.

Args: cluster_name: Target cluster. command: kubectl arguments as a list, without the 'kubectl' prefix. Example: ["get", "pods", "-n", "default"] gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
gateway_idNo
cluster_nameYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that write operations are recorded in audit log and warns against destructive commands. However, it doesn't mention potential side effects or failure behavior, which would be useful for a tool that can execute arbitrary commands.

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

Conciseness5/5

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

Concise and well-structured: purpose, usage guidelines, suitable/avoid commands, audit info, then parameter descriptions. Every sentence adds value without redundancy.

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

Completeness5/5

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

For a tool with 3 parameters, no output schema, and no annotations, the description is highly complete: covers purpose, usage guidelines, behavioral traits, and parameter semantics. Only minor gap is lack of output return format, but that's acceptable for a command execution tool.

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

Parameters5/5

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

Schema description coverage is 0%, so description must explain all parameters. It does so thoroughly: cluster_name target cluster, command as list without 'kubectl' prefix with example, gateway_id optional with guidance on when to omit/provide. Adds meaning beyond schema.

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

Purpose5/5

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

Clearly states it executes kubectl commands on a cluster. Distinguishes from siblings by specifying that it should only be used for operations not covered by dedicated tools, and lists suitable commands (get, describe, logs) as examples.

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

Usage Guidelines5/5

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

Explicitly states when to use (operations not covered by dedicated tools) and when not to use (destructive commands). Lists alternatives: scale_deployment, deploy_model, helm_upgrade, helm_uninstall. Also mentions audit logging for write operations.

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

scale_deploymentA

Scale the replica count of a Kubernetes deployment.

Changes the number of running pods — does not add or remove cluster nodes. Set replicas to 0 to suspend a workload, 1 or more to run it.

Write operation — recorded in the audit log.

Args: cluster_name: Name of the target cluster (as returned by list_clusters). deployment_name: Name of the deployment to scale (e.g. llama3, ollama). replicas: Desired number of running pods (0 to suspend). namespace: Kubernetes namespace (default: 'default'). gateway_id: Gateway UUID from list_clusters. Omit for single-gateway deployments; provide to disambiguate when multiple gateways share a cluster name.

ParametersJSON Schema
NameRequiredDescriptionDefault
replicasYes
namespaceNodefault
gateway_idNo
cluster_nameYes
deployment_nameYes

TDQS

A4.3/5.0
Behavior4/5

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

Discloses that it is a write operation recorded in audit log, and explains the effect on pods. Without annotations, the description adequately covers behavioral traits, though missing details on potential disruptions or permissions.

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

Conciseness4/5

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

Well-structured with a clear purpose statement, explanatory sentences, and an Args list. All sentences add value; could be slightly more concise but very reasonable.

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

Completeness3/5

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

Covers input parameters thoroughly and provides usage guidance. Missing the return value/output description; given no output schema, the agent might wonder what the tool returns after scaling.

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

Parameters5/5

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

Schema has 0% description coverage, but the description's Args section fully explains all 5 parameters, including nuances like gateway_id disambiguation and replicas meaning (suspend/run).

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

Purpose5/5

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

Clearly states 'Scale the replica count of a Kubernetes deployment' with specific verb and resource. Distinguishes from sibling tools like run_kubectl or helm_upgrade by being specific to scaling replicas.

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

Usage Guidelines4/5

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

Provides clear context: changes number of pods without adding nodes, and gives examples (0 to suspend, 1+ to run). However, does not explicitly compare with alternatives or state when not to use.

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

set_agent_budgetA

Set or update the monthly inference budget for an agent. When the agent exceeds the hard cap, the LLM proxy blocks further requests (429).

Args: agent_id: The agent identifier. monthly_limit_usd: Monthly spend limit in USD. soft_cap_pct: Percentage at which a warning is emitted (default 80). hard_cap_pct: Percentage at which requests are blocked (default 100). action: Enforcement action at hard cap — "reject" (default) or "warn".

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoreject
agent_idYes
hard_cap_pctNo
soft_cap_pctNo
monthly_limit_usdYes

TDQS

A4/5.0
Behavior3/5

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 the behavioral consequence of exceeding the hard cap (blocking requests with 429). However, it does not mention whether the budget change is immediate, reversible, or any required permissions. Transparency 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.

Conciseness5/5

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

The description is extremely concise: two introductory sentences and a bullet-like parameter list. Every sentence adds necessary information, and there is no redundancy or fluff. The structure is clean and easy to parse.

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

Completeness4/5

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

Given no output schema, the description does not explain the return value (e.g., success confirmation) or error cases. However, for a mutation tool that sets a budget, the core functionality is well-covered. Minor gaps in output and error behavior prevent a perfect score.

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

Parameters4/5

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

Schema description coverage is 0%, but the description lists all five parameters with clear meanings: agent_id (identifier), monthly_limit_usd (spend limit), soft_cap_pct (warning percentage), hard_cap_pct (block percentage), action (enforcement options). This adds significant value over the bare schema, though it could include expected formats or valid ranges.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Set or update the monthly inference budget for an agent.' It also explains the effect when the hard cap is exceeded, which adds specificity. The verb 'set or update' combined with the resource 'monthly inference budget' is precise and distinguishes it from the sibling tool 'get_agent_budget'.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it provide prerequisites or exclusions. The usage context is implied through the description of the tool's function, but no guidance is given for scenarios like reading the budget (get_agent_budget) or handling multiple agents.

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

set_cluster_rateA

Set the GPU cost rate for a cluster.

Required to enable cost estimates (get_cost_estimate). Can be updated at any time. Requires organisation admin role.

Write operation — recorded in the audit log.

Args: cluster_name: Name of the cluster. rate_per_gpu_hour: Cost per GPU per hour (e.g. 2.50 for $2.50/GPU/hr). currency: ISO 4217 currency code (default: USD).

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoUSD
cluster_nameYes
rate_per_gpu_hourYes

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It discloses 'Write operation — recorded in the audit log', indicating it is auditable. It does not detail side effects or validation limits, but the write nature is clear.

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

Conciseness5/5

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

The description is concise with no wasted words. It front-loads the core purpose, then provides brief context and structured parameter details. Every sentence serves a purpose.

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

Completeness4/5

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

Given three parameters, no output schema, and no annotations, the description covers purpose, usage conditions, audit logging, and parameter meanings. It lacks error conditions or return value details, but is otherwise complete.

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

Parameters4/5

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

Schema coverage is 0%, so description must compensate. It provides an Args section with clear explanations: cluster_name as 'Name of the cluster', rate_per_gpu_hour with an example '$2.50/GPU/hr', and currency with default 'USD'. This adds meaningful context beyond schema titles.

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

Purpose5/5

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

The description starts with a clear verb-resource pair 'Set the GPU cost rate for a cluster.' It explicitly states the purpose and distinguishes from siblings like get_cluster_rate and get_cost_estimate by explaining it is required to enable cost estimates.

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

Usage Guidelines4/5

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

The description provides usage context: required to enable cost estimates, can be updated at any time, and requires organisation admin role. It lacks explicit when-not-to-use but gives clear prerequisites.

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

slurm_cancel_jobA

Cancel a running or pending Slurm job by job ID (scancel).

Write operation — recorded in the audit log.

Args: job_id: Slurm job ID to cancel. host: Slurm head node hostname (overrides SLURM_HOST). signal: Signal to send to the job (default: SIGTERM). Use SIGKILL for immediate termination. gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
job_idYes
signalNoSIGTERM
gateway_idNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. States 'Write operation — recorded in the audit log' and mentions default signal SIGTERM with SIGKILL option. However, does not disclose effects on job dependencies, synchronous nature, or error conditions.

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

Conciseness5/5

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

Extremely concise: one sentence for purpose, one for audit note, then bullet-style args. No wasted words, front-loaded with key info.

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

Completeness3/5

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

Missing output/return value description (likely success/error). No mention of permissions or idempotency. Parameter coverage is good but behavioral gaps remain for a cancellation operation.

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

Parameters4/5

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

Schema description coverage is 0%, but description's 'Args' section adds meaning: explains job_id, host (overrides env var), signal (default, usage for immediate termination), and gateway_id. Provides context beyond schema definitions.

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

Purpose5/5

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

Clear verb 'Cancel', specific resource 'Slurm job', and identifies as a write operation recorded in audit log. Distinguishes from sibling read tools like slurm_get_job_status and submission tools.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives. Mentions it's a write operation but lacks preconditions or cases when cancellation is inappropriate. Implied usage by context, but no exclusion criteria.

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

slurm_get_cluster_infoA

Get Slurm cluster information: partitions, node states, and GPU availability.

Returns a summary of all nodes, their GPU resources (GRES), memory, and current state (idle / allocated / down).

Args: host: Slurm head node hostname. Overrides the SLURM_HOST env var on the gateway. partition: Filter output to a specific partition (optional). gateway_id: Gateway UUID for the site where the Slurm cluster is deployed.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
partitionNo
gateway_idNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided. The description implies a read-only operation by returning cluster information, but it does not explicitly state safety, idempotency, or side effects. Adequate but could be more transparent.

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

Conciseness5/5

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

The description is concise with a clear summary line and a structured Args section. Every sentence adds information, no redundancy.

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

Completeness3/5

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

No output schema exists, and the description only broadly states what is returned (nodes, GPU resources, memory, state). It lacks specifics about the output format or additional fields, which would help an agent parse results.

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

Parameters4/5

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

Schema coverage is 0%, but the description explains each parameter: 'host' overrides an environment variable, 'partition' filters output, 'gateway_id' identifies the site. This adds value beyond the schema's minimal titles.

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

Purpose5/5

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

The description clearly states 'Get Slurm cluster information: partitions, node states, and GPU availability.' This is a specific verb+resource combination that distinguishes it from sibling tools like slurm_list_jobs and slurm_submit_job.

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

Usage Guidelines2/5

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 (e.g., slurm_get_job_status, slurm_list_jobs). The description only explains parameters, not use cases or exclusions.

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

slurm_get_job_outputA

Tail the stdout log file of a Slurm job to monitor training progress.

Reads the last N lines of the job's output file. If log_path is omitted, defaults to slurm-{job_id}.out in the user's home directory.

Args: job_id: Slurm job ID. host: Slurm head node hostname (overrides SLURM_HOST). log_path: Explicit path to the log file (optional). lines: Number of lines to return (default: 50). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
linesNo
job_idYes
log_pathNo
gateway_idNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions default log path and host parameter overriding env var, but does not disclose error handling, authentication needs, or what happens if job not found.

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

Conciseness4/5

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

Clear structure with a main paragraph and an Args block. Slightly verbose but well-organized and easy to read.

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

Completeness3/5

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

Lacks output schema and does not describe return format or error scenarios. For a tool with 5 parameters and no annotations, the description is not fully complete.

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

Parameters4/5

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

Schema description coverage is 0%, but the description includes a docstring that explains all 5 parameters (job_id, host, log_path, lines, gateway_id), adding meaning beyond the schema's type and default.

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

Purpose5/5

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

Clearly states it tails the stdout log file of a Slurm job to monitor training progress, with a clear verb and resource. Distinguishes from sibling tools like slurm_get_job_status and slurm_list_jobs.

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

Usage Guidelines3/5

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

Implies usage by describing the action (reading output of a Slurm job), but lacks explicit guidance on when to use versus alternatives, or 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.

slurm_get_job_statusA

Get the current status and resource usage of a specific Slurm job.

Queries squeue for running/pending jobs and falls back to sacct for completed or failed jobs.

Args: job_id: Slurm job ID. host: Slurm head node hostname (overrides SLURM_HOST). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
job_idYes
gateway_idNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the fallback behavior (squeue then sacct) and the host override. However, it does not describe output format, error handling, authentication needs, or rate limits, leaving gaps for the agent.

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

Conciseness5/5

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

The description is very concise: one sentence for purpose, one for behavior, and a bullet list for parameters. No redundant information, front-loaded purpose.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers the essential behavior and parameter details. It lacks output format and error handling, but overall it is sufficiently complete for a simple retrieval tool.

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

Parameters4/5

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

Schema coverage is 0% (no parameter descriptions in schema). The description adds meaningful explanations for all three parameters: job_id, host (overrides env var), and gateway_id. 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.

Purpose5/5

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

The description explicitly states the tool retrieves status and resource usage for a specific Slurm job, distinguishing it from sibling tools like slurm_list_jobs (list jobs) or slurm_get_job_output (get output). The verb 'Get' and resource 'status and resource usage of a specific Slurm job' are clear and specific.

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

Usage Guidelines3/5

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

The description says it queries squeue for running/pending jobs and falls back to sacct for completed/failed jobs, giving some context. However, it does not explicitly state when to use this tool versus alternatives like get_job or slurm_list_jobs, nor does it mention prerequisites or exclusions.

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

slurm_list_jobsA

List running and pending Slurm jobs.

Returns job ID, name, user, state, partition, node count, GPU allocation, submit time, and time limit for each job.

Args: host: Slurm head node hostname (overrides SLURM_HOST). user: Filter by username (optional). partition: Filter by partition name (optional). state: Filter by job state — RUNNING, PENDING, FAILED, COMPLETED (optional). gateway_id: Gateway UUID for the target site.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
userNo
stateNo
partitionNo
gateway_idNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It lists returned fields and parameters but omits details like default filtering behavior (e.g., what 'running and pending' means when state filter allows other values), pagination, auth needs, or whether jobs are scoped to the caller. Partial but not exhaustive.

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

Conciseness5/5

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

Two sentences for purpose and return fields, followed by a clear list of parameters. Front-loaded with the main action, no wasted words, and well-structured for quick scanning.

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

Completeness4/5

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

Given 5 parameters and no output schema, the description covers purpose, return fields, and all parameters. It lacks default behavior if filters are omitted and does not mention pagination or limits, but is generally adequate for a list tool with good parameter descriptions.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates. Each parameter is described with its purpose and options (e.g., 'Filter by job state — RUNNING, PENDING, FAILED, COMPLETED'), providing essential context missing from the schema.

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

Purpose5/5

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

The description clearly states the tool lists Slurm jobs, specifies the verb 'list', the resource 'Slurm jobs', and even enumerates the returned fields (job ID, name, state, etc.), differentiating it from siblings like 'get_job' or 'list_jobs' by focusing on Slurm-specific jobs.

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

Usage Guidelines2/5

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 vs alternatives such as 'list_jobs' or 'slurm_get_job_status'. While the Slurm-specific name hints at context, there is no mention of when not to use it or any exclusions.

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

slurm_submit_jobA

Submit a multi-node GPU training job to Slurm via sbatch.

Generates a complete sbatch script from the provided spec and submits it. Set dry_run=true to preview the script without submitting.

Write operation — recorded in the audit log.

Args: job_name: Job name (--job-name). nodes: Number of nodes to allocate (--nodes). gpus_per_node: GPUs per node (--gpus-per-node). script: Shell script body — the command to run (e.g. torchrun --nproc_per_node=8 train.py). host: Slurm head node hostname (overrides SLURM_HOST). partition: Target Slurm partition (--partition). ntasks_per_node: MPI tasks per node (default: gpus_per_node). time: Wall-clock time limit in HH:MM:SS or D-HH:MM:SS format (--time). output: Path to stdout log file (default: slurm-%j.out). error: Path to stderr log file (default: slurm-%j.err). account: Slurm account / allocation for billing (--account). dry_run: If true, return the sbatch script without submitting. gateway_id: Gateway UUID for the site where the Slurm cluster is deployed.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
timeNo
errorNo
nodesYes
outputNo
scriptYes
accountNo
dry_runNo
job_nameYes
partitionNo
gateway_idNo
gpus_per_nodeYes
ntasks_per_nodeNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses write operation, audit logging, and dry_run behavior. However, it lacks details on resource allocation or potential failures.

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

Conciseness4/5

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

The description is well-structured with a summary paragraph and an Args list. It is concise for 13 parameters, though the summary slightly repeats the purpose.

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

Completeness4/5

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

With 13 parameters, no output schema, and no annotations, the description provides good coverage of inputs and behavior. It lacks return value description and error handling, but is still fairly complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description explains each parameter in detail (e.g., job_name, nodes, script) with Slurm flags. This adds significant meaning beyond the schema's types and titles.

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

Purpose5/5

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

The description clearly states the tool submits a multi-node GPU training job to Slurm via sbatch, generates the script, and submits it. It distinguishes from sibling tools like slurm_cancel_job or slurm_list_jobs.

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

Usage Guidelines3/5

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

The description mentions dry_run for previewing and notes it's a write operation in audit log, but does not provide explicit when-not-to-use guidance or mention alternatives.

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

trigger_pipelineA

Manually trigger an automation pipeline.

Pipelines are sequences of jobs that execute in order. Retrieve available pipeline IDs with list_pipelines.

Write operation — recorded in the audit log.

Args: pipeline_id: UUID of the pipeline to trigger. payload: Optional input parameters passed to the pipeline steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo
pipeline_idYes

TDQS

A4/5.0
Behavior3/5

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

The description notes that it is a write operation recorded in the audit log, which is useful, but lacks details on side effects, error conditions, or execution behavior.

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

Conciseness5/5

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

The description is concise, front-loaded with the main purpose, and every sentence adds value without redundancy.

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

Completeness4/5

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

For a simple tool with 2 parameters and no output schema, the description covers the necessary information (purpose, prerequisite, arguments, audit). Could mention potential errors or return behavior.

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

Parameters4/5

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

With 0% schema coverage, the description compensates by explaining pipeline_id as 'UUID of the pipeline to trigger' and payload as 'Optional input parameters passed to the pipeline steps', adding clear meaning.

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

Purpose5/5

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

The description clearly states the action ('Manually trigger') and the resource ('an automation pipeline'), distinguishing it from related tools like list_pipelines.

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

Usage Guidelines3/5

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

It mentions using list_pipelines to get pipeline IDs, providing helpful context, but does not explicitly state when to use this tool versus alternatives or when not to use it.

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

update_agent_model_ruleA

Create a new agent model access rule. Controls which LLM models an agent can use through the VibOps LLM proxy.

Examples:

  • Allow pricing agents only Llama models: pattern="pricing-", allowed=["llama-"]

  • Block all agents from GPT-4o: pattern="", denied=["gpt-4o"]

Args: agent_id_pattern: Glob pattern matching agent IDs (e.g. "pricing-", ""). allowed_models: List of model glob patterns the agent MAY use. Empty = all allowed. denied_models: List of model glob patterns the agent MUST NOT use. Deny overrides allow.

ParametersJSON Schema
NameRequiredDescriptionDefault
denied_modelsNo
allowed_modelsNo
agent_id_patternYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It mentions that deny overrides allow, a key behavioral trait. However, it does not specify whether the tool is idempotent, replaces or merges rules, or if it requires specific permissions. The name-update vs description-create mismatch further undermines transparency.

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

Conciseness4/5

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

The description is well-structured with a brief overview, examples, and a clear argument list. It is concise without unnecessary details, though the name-description mismatch is a minor structural flaw.

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

Completeness3/5

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

Given the lack of output schema and annotations, the description adequately explains functionality and parameters. However, it misses return values, error handling, and behavioral details like overwrite behavior, leaving gaps for an agent relying solely on it.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description fully compensates. It explains each parameter (agent_id_pattern, allowed_models, denied_models) with clear formats and examples, adding significant meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool creates an agent model access rule and controls which LLM models an agent can use. It is specific about the resource and action, though the name 'update' contradicts 'create', causing minor confusion.

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

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples illustrating when to use the tool, such as allowing Llama models or blocking GPT-4o. However, it lacks explicit guidance on when not to use it or alternatives, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ai_act_controlA

Update the status, notes or evidence URL of an AI Act control.

Write operation — recorded in the audit log.

Args: control_id: UUID of the control to update (from list_ai_act_controls). status: New compliance status — one of: compliant, partial, non_compliant, not_applicable. notes: Free-text justification or implementation notes (optional). evidence_url: URL to supporting evidence document or test report (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
statusYes
control_idYes
evidence_urlNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the operation is a write operation and is audited, which is useful. It also implies the control_id should come from list_ai_act_controls. However, it does not specify whether updates are atomic or what happens if a field is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loading the purpose and then listing arguments in a clear block. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not specify the return value upon success or failure. However, it covers the operation well for an update tool with simple parameters. It could mention expected outcome (e.g., 'Returns updated control') but is still fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema has 0% description coverage, the tool description compensates by providing detailed explanations for all four parameters, including acceptable values for status and optionality for notes and evidence_url.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and the resource (AI Act control), and specifies which fields can be updated (status, notes, evidence URL). It is distinct from sibling tool list_ai_act_controls which lists controls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for updating controls, but does not explicitly state when to use it over alternatives like update_agent_model_rule or other update tools. It notes it is a write operation and recorded in audit log, which provides context but no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ldap_configA

Update the LDAP / Active Directory configuration for the current organisation.

Only supplied fields are updated — omitted fields are left unchanged. To enable LDAP (ldap_enabled=True), ldap_server_url, ldap_bind_dn, ldap_bind_password, and ldap_search_base must already be set (or provided in the same call). Requires org_admin role.

Search filter examples: OpenLDAP : (uid={username}) Active Directory: (sAMAccountName={username}) Azure AD on-prem: (userPrincipalName={username}@domain.com)

Args: ldap_server_url: LDAP server URL, e.g. ldap://dc.corp.local or ldaps://dc.corp.local. ldap_bind_dn: Service account DN, e.g. cn=svc-vibops,ou=users,dc=corp,dc=local. ldap_bind_password: Service account password (stored Fernet-encrypted). ldap_search_base: Search base DN, e.g. ou=users,dc=corp,dc=local. ldap_search_filter: User search filter with {username} placeholder (default: (uid={username})). ldap_default_role: Role assigned to JIT-provisioned users — member, admin, or viewer. ldap_jit_provisioning: If True, unknown users are auto-provisioned on first login. ldap_enabled: Set True to activate LDAP login, False to disable without clearing config.

ParametersJSON Schema
NameRequiredDescriptionDefault
ldap_bind_dnNo
ldap_enabledNo
ldap_server_urlNo
ldap_search_baseNo
ldap_default_roleNo
ldap_bind_passwordNo
ldap_search_filterNo
ldap_jit_provisioningNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses partial update behavior, role requirement, and password encryption, but does not detail consequences of disabling LDAP or irreversible effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured, front-loaded with purpose, followed by behavioral details, prerequisites, and parameter list. Each sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers parameter meanings, prerequisites, and usage context sufficiently for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully documents all 8 parameters with examples, defaults, and notes on password encryption and search filter formatting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Update the LDAP / Active Directory configuration for the current organisation' with a specific verb and resource, clearly distinguishing it from sibling tools like get_ldap_config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains partial update behavior ('Only supplied fields are updated'), prerequisites for enabling LDAP, required role ('Requires org_admin role'), and provides search filter examples for different LDAP servers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_policyA

Replace the organisation policy configuration.

The full policy object must be supplied (not a partial patch). Retrieve the current policy with get_policy, modify the desired fields, then submit. Changes are applied immediately — active agents will reflect the new policy within seconds. All changes are recorded in the audit log.

Write operation — recorded in the audit log.

Args: policy: Complete policy object as returned by get_policy, with modifications applied. Unknown keys are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
policyYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses that it is a write operation recorded in the audit log, applies immediately, and unknown keys are rejected. It could benefit from mentioning authorization requirements, but the provided details are useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage steps and effects. It is reasonably concise with about 5 sentences, though it could be tightened slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one complex parameter and no output schema, the description covers the essential workflow, constraints (full replacement, unknown keys rejected), and effects (immediate, audited). It lacks error handling details but is sufficient for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the 'policy' parameter: a complete object from get_policy with modifications, and unknown keys are rejected. This adds significant meaning beyond the schema, which only defines it as an object with additionalProperties. Schema coverage is 0% but description compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Replace the organisation policy configuration' and explicitly says the full policy object must be supplied, not a partial patch. It clearly distinguishes from the sibling 'get_policy' which retrieves the current policy, and other update 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to 'Retrieve the current policy with get_policy, modify the desired fields, then submit,' providing a clear workflow. It does not explicitly mention when not to use or alternatives, but the usage context is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_siem_configA

Configure the SIEM push export destination for the current organisation.

Only supplied fields are updated. Requires org_admin role.

Splunk: siem_provider="splunk", siem_endpoint="https://splunk.corp.local:8088", siem_token="" Datadog: siem_provider="datadog", siem_endpoint="datadoghq.com" (or datadoghq.eu), siem_token=""

Once configured, use push_to_siem to push audit events on demand.

Args: siem_provider: Destination type — "splunk" or "datadog". siem_endpoint: Splunk HEC base URL or Datadog site (e.g. datadoghq.com). siem_token: Splunk HEC token or Datadog API key (stored Fernet-encrypted).

ParametersJSON Schema
NameRequiredDescriptionDefault
siem_tokenNo
siem_endpointNo
siem_providerNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses important behaviors: it requires org_admin role, performs a partial update, and stores the token Fernet-encrypted. These details add transparency beyond the schema, though rate limits or idempotency are 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: opening purpose, then provider examples, role requirement, partial update note, and explicit Args. It is concise with no redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations or output schema, the description covers all essential aspects: purpose, parameters, behavior (partial update), prerequisite role, and next steps. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The Arg section adds significant meaning beyond the input schema (which has 0% description coverage). It explains each parameter's purpose, allowed values (splunk/datadog), endpoint format, and token type, making the schema fully actionable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool 'Configure the SIEM push export destination for the current organisation.' It uses a specific verb ('configure') and resource ('SIEM push export destination'), and distinguishes from sibling tools like get_siem_config (read) and push_to_siem (trigger).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that 'Only supplied fields are updated' and 'Requires org_admin role,' providing context on when to use. It also references push_to_siem as a follow-up, implying when this tool is a prerequisite. However, it does not explicitly state when not to use or contrast with get_siem_config.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_audit_chainA

Verify the cryptographic integrity of the entire audit log chain.

Each audit entry is signed with HMAC-SHA256 chaining the previous entry's hash. This endpoint traverses the full chain and reports the first broken link if tampering is detected, or confirms the chain is intact.

Returns: {"valid": true} if the chain is intact, or {"valid": false, "broken_at": , "detail": "..."} if corruption is found.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully covers behavioral details: it explains the HMAC chaining, traverses the full chain, and reports broken links. It also gives return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise paragraphs, each serving a purpose: purpose, mechanism, return format. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description provides the return structure. The tool is simple with no parameters, and the description covers all necessary aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline is 4. The description adds context about the tool's behavior, which is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verifying cryptographic integrity of the audit log chain. It uses specific technical language (HMAC-SHA256 chaining) and distinguishes itself from siblings like list_audit_logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when integrity check is needed) but does not explicitly exclude alternatives. Given the tool's specificity, this is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 74 tool updatesv0.1.0
    • First observedcreate_agent_identity
    • First observedcreate_secret
    • First observeddelete_gateway
    • First observeddeploy_model
    • First observedevaluate_job
    • First observedgenerate_compliance_report
    • First observedget_agent_budget
    • First observedget_agent_dependencies
    • First observedget_agent_dependency_graph
    • First observedget_agent_model_rules
    • First observedget_agent_usage
    • First observedget_agent_usage_detail
    • First observedget_ai_act_score
    • First observedget_budget
    • First observedget_chargeback
    • First observedget_cluster_deployments
    • First observedget_cluster_rate
    • First observedget_compliance_report
    • First observedget_cost_estimate
    • First observedget_gpu_metrics
    • First observedget_job
    • First observedget_job_evaluations
    • First observedget_job_metrics
    • First observedget_ldap_config
    • First observedget_mttr
    • First observedget_open_anomalies
    • First observedget_policy
    • First observedget_siem_config
    • First observedget_spend_trend
    • First observedget_waste_analysis
    • First observedget_workload_breakdown
    • First observedgit_clone
    • First observedhelm_uninstall
    • First observedhelm_upgrade
    • First observedlist_agent_identities
    • First observedlist_ai_act_controls
    • First observedlist_alerts
    • First observedlist_anomalies
    • First observedlist_audit_logs
    • First observedlist_clusters
    • First observedlist_compliance_reports
    • First observedlist_eval_rubrics
    • First observedlist_gateways
    • First observedlist_jobs
    • First observedlist_kubectl_contexts
    • First observedlist_pipelines
    • First observedlist_providers
    • First observedlist_secrets
    • First observedpush_to_siem
    • First observedregister_gateway
    • First observedregistry_check_image
    • First observedregistry_delete_tag
    • First observedregistry_list_repos
    • First observedregistry_list_tags
    • First observedresolve_anomaly
    • First observedrevoke_agent_identity
    • First observedrotate_agent_identity
    • First observedrun_kubectl
    • First observedscale_deployment
    • First observedset_agent_budget
    • First observedset_cluster_rate
    • First observedslurm_cancel_job
    • First observedslurm_get_cluster_info
    • First observedslurm_get_job_output
    • First observedslurm_get_job_status
    • First observedslurm_list_jobs
    • First observedslurm_submit_job
    • First observedtrigger_pipeline
    • First observedupdate_agent_model_rule
    • First observedupdate_ai_act_control
    • First observedupdate_ldap_config
    • First observedupdate_policy
    • First observedupdate_siem_config
    • First observedverify_audit_chain

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with detailed descriptions. Even closely related tools like list_anomalies and get_open_anomalies differ in scope and are well explained, preventing confusion.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern (e.g., create_agent_identity, list_clusters). Subsystem prefixes like registry_, helm_, and slurm_ are used uniformly, maintaining a predictable structure.

Tool Count2/5

With 74 tools, the server covers a vast scope. While each tool is justified, the count far exceeds typical well-scoped ranges (3-15 tools) and falls into the 'too many' category, making navigation challenging.

Completeness3/5

The tool surface is broad but has notable gaps: missing delete_secret, cancel_job (non-Slurm), and create/update/delete for pipelines. Core workflows are covered, but lifecycle operations for some resources are incomplete.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    AI Agent Mission Control — 200+ MCP tools across 31 domains. Manage agents, experiments, workflows, crews, skills, tools, credentials, approvals, signals, budgets, marketplace, knowledge bases, chatbots, and more. Self-hosted, open-source (AGPL-3.0). Supports stdio + Streamable HTTP/SSE with OAuth 2.0 auth.
    34
    65
    AGPL 3.0
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides real-time monitoring of AI agents, context, usage limits, workflows, files, Git, tests, builds, errors, secrets, and model-economy advice for tools like Claude Code, Codex, and Cursor, with 30 MCP tools for comprehensive observability.
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VibOpsai/vibops-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server