Skip to main content
Glama
aidenappl
by aidenappl

lattice-mcp

Model Context Protocol server for Lattice, the container orchestration platform that runs every appleby.cloud service. Gives Claude Code direct, typed access to workers, stacks, containers, deployments, databases, registries, networks, volumes and instance configuration.

appleby.cloud platform · MCP server · published to npm as lattice-mcp · consumed via npx -y lattice-mcp


Overview

lattice-mcp is a single-file Node ESM program (index.js) that speaks MCP over stdio and translates tool calls into HTTP requests against the lattice-api admin surface. It exposes 136 typed tools and holds no business logic, caching or state of its own — every behaviour (pagination, validation, side effects) comes from lattice-api.

Once configured, ask Claude Code things like:

  • "What's the status of all stacks?"

  • "Show me logs for the forta-api container"

  • "Which containers are unhealthy?" (lattice_get_anomalies is the best first call)

  • "Deploy stack 5" / "Rollback the last deployment on stack 12"

  • "What image tags can I deploy from the registry?"

Related MCP server: Claude Orchestrator MCP

Role in the appleby.cloud ecosystem

Repo

Relationship

lattice-api

The API this wraps — its route table is the source of truth for tool coverage.

lattice-web

Next.js dashboard over the same API.

lattice-runner

Agent on each worker VM; WebSocket back to lattice-api.

monitor-mcp / forta-mcp / keyring-mcp / openbucket-mcp

Sibling MCP servers, same single-file structure.

Tech stack

  • Node ≥18 (needs global fetch and AbortSignal.timeout), ESM ("type": "module").

  • @modelcontextprotocol/sdk ^1.29.0McpServer + StdioServerTransport.

  • zod ^4.4.3 for argument schemas (a declared dependency as of 1.1.1).

  • No build step, no bundler. node --check index.js is the only static gate.

Getting started

Prerequisites

  • Node ≥18.

  • A Lattice API URL and API token. Generate a token from the Lattice web dashboard under Settings > API Tokens.

Setup

Quickest — interactive setup writes the lattice block into ~/.mcp.json:

npx lattice-mcp --setup

Or configure it manually in ~/.mcp.json:

{
  "mcpServers": {
    "lattice": {
      "command": "npx",
      "args": ["-y", "lattice-mcp"],
      "env": {
        "LATTICE_API_URL": "https://lattice-api.appleby.cloud",
        "LATTICE_API_TOKEN": "your-api-token"
      }
    }
  }
}

Restart Claude Code after setup so the new server and tools are picked up.

Environment variables

Variable

Required

Description

LATTICE_API_URL

Yes

Lattice API base URL

LATTICE_API_TOKEN

Yes

Bearer token for authentication (sent on every request)

LATTICE_ALLOW_SECRET_VALUES

No

Set to 1 to disable secret masking in responses

Secret values are masked

Every response is passed through a masking step before it reaches the model. Anything that looks like a credential keeps its first two characters and loses the rest to a fixed-width tail — supersecret becomes su**********.

That is enough to tell two credentials apart, or to confirm a rotation actually changed something, and not enough to use. The tail is a fixed width so the mask does not reveal the real length.

This covers container and stack env_vars, compose_yaml environment blocks, global env vars flagged is_secret, database passwords, and freshly minted deploy/worker/API tokens. Variable names are left readable — they are the useful half — as are addresses like TOKEN_URL and AUTH_URL.

This server authenticates as a Lattice admin, and the API only masks global env vars server-side for non-admin callers. Without this step, lattice_list_env_vars returns every secret value in plaintext.

Set LATTICE_ALLOW_SECRET_VALUES=1 to turn masking off if you genuinely need a working value.

Development

Command

What it does

node index.js --setup

Interactive setup — writes the lattice block into ~/.mcp.json

npm install

Install dependencies (not vendored)

node --check index.js

Syntax gate — the only static check that exists

LATTICE_API_URL=… LATTICE_API_TOKEN=… node index.js

Run the server on stdio

grep -c 'server.tool(' index.js

Confirm the tool count (should be 136)

npm publish

Publish to npm — this is deployment (requires 2FA passkey from an interactive terminal)

Tools

All 136 tools, grouped as they appear in index.js. ⚠️ marks destructive tools; their descriptions state the blast radius.

Overview & health

Tool

Description

lattice_overview

Fleet overview — worker/stack/container counts, failed stacks, CPU/memory

lattice_health

API health and database connectivity

lattice_get_version

Deployed lattice-api version string — check deploy drift against GitHub tags

Workers

Tool

Description

lattice_list_workers

List workers with status, IP, versions, heartbeat

lattice_get_worker

Detailed worker info including metrics

lattice_get_worker_metrics

CPU, memory, disk, network metrics

lattice_reboot_worker

Reboot a worker machine

lattice_upgrade_worker

Upgrade worker runner to latest

lattice_stop_all_worker

Stop all containers on a worker

lattice_start_all_worker

Start all containers on a worker

Stacks

Tool

Description

lattice_list_stacks

List stacks with status and worker assignment

lattice_get_stack

Full stack details including compose YAML

lattice_deploy_stack

Deploy a stack (all or specific containers)

lattice_restart_stack

Restart all containers in a stack

lattice_stop_stack

Stop all containers in a stack

lattice_start_stack

Start all containers in a stack

lattice_update_stack

Update stack configuration

Containers

Tool

Description

lattice_list_containers

List containers with status, image, ports, health

lattice_get_container

Full container details

lattice_get_container_logs

Recent container logs (stdout/stderr); offset paginates into older logs, filter by stream/worker_id

lattice_get_container_lifecycle

Lifecycle events (start, stop, health changes)

lattice_start_container

Start a stopped container

lattice_stop_container

Stop a running container

lattice_restart_container

Restart a container

lattice_kill_container

Force kill a container

lattice_pause_container

Pause a running container

lattice_unpause_container

Unpause a paused container

lattice_remove_container

Remove a container ⚠️

lattice_recreate_container

Remove and recreate a container ⚠️

Deployments

Tool

Description

lattice_list_deployments

List deployments with status and timing

lattice_get_deployment

Deployment details with container-level status

lattice_get_deployment_logs

Pull, create, start, swap events with timing

lattice_rollback_deployment

Rollback to previous state ⚠️

Instance self-update

Tool

Description

lattice_update_api

Trigger the Lattice API container to self-update

lattice_update_web

Trigger the Lattice web container to update

Audit & API tokens

Tool

Description

lattice_get_audit_log

Audit log entries (who did what, when); filter by user_id/action/resource_type, offset paginates

lattice_list_api_tokens

List API tokens

lattice_create_api_token

Create a new API token

lattice_delete_api_token

Delete an API token ⚠️

Database instances

Tool

Description

lattice_list_database_instances

List managed databases (filter by worker, engine, status)

lattice_get_database_instance

Full instance config

lattice_create_database_instance

Provision mysql/mariadb/postgres on a worker (omit port to auto-allocate)

lattice_update_database_instance

Update config, limits, snapshot schedule

lattice_delete_database_instance

Destroy an instance and its data volume ⚠️ — async; force only for an offline worker

lattice_database_action

start / stop / restart / remove ⚠️ — remove is container-only, the data volume survives

lattice_get_database_connection

Host, port, database and username — no secrets

lattice_reveal_database_credentials

Reveal live credentials (audited; root only on request)

lattice_get_database_credentials

Deprecated — root credentials via GET; use the reveal tool

lattice_get_database_events

Lifecycle history — start here when a database looks wrong

lattice_get_database_backup_posture

3-2-1 standing — copies, media, off-site, with warnings

lattice_get_database_runs

Scheduled snapshot attempts, including skipped slots and why

lattice_get_database_metrics

CPU/memory samples for a database (no containers-table row needed)

lattice_get_database_logs

Container stdout/stderr

lattice_get_database_lifecycle_logs

Worker lifecycle messages, incl. why a create failed

lattice_open_database_console

Authorise an interactive SQL console session

lattice_list_database_snapshots

Snapshots for an instance

lattice_create_database_snapshot

Take a snapshot now

lattice_restore_database_snapshot

Restore from a snapshot ⚠️

lattice_delete_database_snapshot

Delete a snapshot and its remote file ⚠️

Worker port allocation

Tool

Description

lattice_get_worker_port_availability

Claimed host ports on a worker, plus a free suggestion

Backup destinations

Tool

Description

lattice_list_backup_destinations

List backup destinations

lattice_get_backup_destination

One destination's configuration

lattice_create_backup_destination

Create a destination

lattice_update_backup_destination

Update a destination

lattice_delete_backup_destination

Delete a destination ⚠️

lattice_test_backup_destination

Test connectivity without writing a backup (requires a connected worker_id)

Registries

Tool

Description

lattice_list_registries

Configured container registries

lattice_create_registry

Add a registry

lattice_update_registry

Update a registry

lattice_delete_registry

Delete a registry ⚠️

lattice_test_registry

Test a saved registry's stored credentials

lattice_test_registry_inline

Test registry credentials before saving

lattice_list_registry_repositories

What images exist

lattice_list_registry_tags

What versions are deployable

Discovery & diagnostics

Tool

Description

lattice_search

Search workers, stacks and containers in one call

lattice_get_anomalies

Restart loops, unhealthy containers, offline workers — best first call

lattice_get_fleet_metrics

Aggregated fleet CPU/memory/disk/network

lattice_get_versions

Runner versions and what's outdated

lattice_refresh_versions

Re-poll every worker for its current runner version

lattice_get_container_metrics

Per-container metrics over time

lattice_get_self

Which user the token authenticates as

Stacks — lifecycle, compose & deploy tokens

Tool

Description

lattice_create_stack

Create an empty stack

lattice_delete_stack

Delete a stack and all its containers ⚠️

lattice_get_stack_containers

Containers in a stack

lattice_update_stack_compose

Replace a stack's compose YAML

lattice_sync_stack_compose

Reconcile container records against stored compose YAML

lattice_import_compose

Create a stack from compose YAML

lattice_export_stack

Export a stack's full definition as portable JSON

lattice_import_stack_export

Recreate a stack from an export document

lattice_save_stack_as_template

Save a stack as a reusable template

lattice_list_deploy_tokens

CI deploy tokens — last_used_at shows whether CI reaches Lattice

lattice_create_deploy_token

Create a CI deploy token

lattice_delete_deploy_token

Delete a CI deploy token ⚠️

lattice_approve_deployment

Approve a deployment awaiting approval

Container definitions

Tool

Description

lattice_create_container

Add a container definition to a stack

lattice_update_container

Update a container definition

lattice_delete_container

Delete definition and its running container ⚠️

Workers — registration, tokens, volumes, networks

Tool

Description

lattice_create_worker

Register a worker

lattice_update_worker

Update a worker's name, hostname, IP, status, labels

lattice_delete_worker

Delete a worker ⚠️

lattice_get_worker_container_stats

Live per-container stats from one worker

lattice_list_worker_tokens

Worker registration tokens

lattice_create_worker_token

Create a registration token for a worker

lattice_delete_worker_token

Delete a worker token ⚠️

lattice_list_worker_volumes

Docker volumes on a worker

lattice_create_worker_volume

Create a Docker volume on a worker

lattice_delete_worker_volume

Delete a Docker volume ⚠️

lattice_list_worker_networks

Docker networks on a worker

lattice_create_worker_network

Create a Docker network on a worker

lattice_delete_worker_network

Delete a Docker network ⚠️

lattice_list_all_networks

Every tracked network across the fleet

lattice_delete_network

Delete a tracked network by Lattice ID ⚠️

lattice_force_remove_container

Force-remove a wedged container ⚠️

Env vars, templates & webhooks

Tool

Description

lattice_list_env_vars

Global ${VAR} interpolation values (secrets masked)

lattice_create_env_var

Create a global environment variable

lattice_update_env_var

Update a global environment variable

lattice_delete_env_var

Delete a global environment variable ⚠️

lattice_list_templates

Saved stack templates

lattice_create_template

Create a stack template

lattice_delete_template

Delete a stack template ⚠️

lattice_list_webhooks

Outbound event webhooks

lattice_create_webhook

Create an outbound webhook

lattice_update_webhook

Update a webhook

lattice_delete_webhook

Delete a webhook ⚠️

lattice_test_webhook

Send a test payload to a webhook

Users & instance configuration

Tool

Description

lattice_list_users

List Lattice users with roles and status

lattice_create_user

Create a local Lattice user

lattice_update_user

Update a user's name, role or active flag ⚠️

lattice_delete_user

Delete a Lattice user ⚠️

lattice_get_sso_config

Get the Forta SSO configuration

lattice_update_sso_config

Update SSO config ⚠️ (can lock out SSO users)

lattice_get_smtp_config

Get the SMTP configuration

lattice_update_smtp_config

Update the SMTP configuration

lattice_test_smtp

Send a test email with the saved SMTP config

lattice_get_notification_prefs

Per-event notification preferences

lattice_update_notification_prefs

Update notification preferences

Project structure

Everything lives in one file:

Path

Role

index.js

The whole server: --setup flow, config read, api() HTTP helper, text()/body() helpers, all 136 server.tool(...) registrations, transport connect.

package.json

npm metadata; bin.lattice-mcpindex.js.

AGENTS.md

Contributor/agent guide — conventions, handler contracts, verification.

README.md

This file.

Deployment

Published to npm as lattice-mcp (public). Consumers run npx -y lattice-mcp, which resolves the latest published version — so publishing is deployment, and a running MCP server must be restarted to pick up a new version. npm publish requires 2FA via passkey from an interactive terminal.

Contributing & further reading

Read AGENTS.md before changing code — it documents the one-shape tool pattern, the body()/api() helpers, the "read the handler before adding a tool" rule, and the verification steps. Related repos: lattice-api, lattice-web, lattice-runner.

License

MIT

Available Tools

133 tools
lattice_approve_deploymentA

Approve a deployment that is waiting on manual approval

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDeployment ID

TDQS

A3.7/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 full burden. It states it is an approve action (mutation) but does not disclose side effects, required permissions, idempotency, or what happens after approval (e.g., triggers deployment). This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It is front-loaded and immediately communicates the tool's purpose.

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?

The tool is simple (one required param, no output schema), so the description is adequate but could mention result or error conditions. It does not explain what the response indicates or whether the approval succeeded.

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

Parameters3/5

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

Schema coverage is 100% (one parameter 'id' described as 'Deployment ID'). The description does not add meaning beyond the schema; it only clarifies that the deployment is in a manual approval state. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('approve') and the resource ('deployment that is waiting on manual approval'). It distinguishes from sibling tools like 'lattice_deploy_stack' (which triggers a deployment) and 'lattice_rollback_deployment' (which reverts).

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 the tool: when a deployment is waiting on manual approval. This is specific enough to guide usage, though it does not explicitly mention when not to use or provide alternatives.

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

lattice_create_api_tokenB

Create a new API token for AI tools or automation

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesToken name
expires_inNoExpiration: '30d', '90d', '365d', or 'never'. Defaults to 90d

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only states 'create' without disclosing side effects (e.g., token secret returned once, immediate activation, permission requirements). Minimal 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.

Conciseness5/5

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

Single concise sentence with no unnecessary words. Perfectly front-loaded.

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?

Lacks information about return value (e.g., token secret shown only once), success behavior, or prerequisites. For a create tool without output schema, context is incomplete.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. Tool description adds no extra meaning beyond schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states verb 'create', resource 'API token', and usage context 'for AI tools or automation'. Differentiates from siblings like lattice_create_deploy_token and lattice_create_worker_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?

Implied usage via 'for AI tools or automation' but lacks explicit guidance on when to use this vs other token creation tools, or any prerequisites.

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

lattice_create_backup_destinationA

Create a backup destination. config is a free-form object whose shape depends on type (e.g. an S3 destination takes bucket, region, endpoint and credentials)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDestination name
typeYesDestination type, e.g. 's3'
configYesType-specific configuration object

TDQS

A3.6/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 full burden. It only states the action and config details but does not disclose side effects, required permissions, uniqueness constraints, or what the response contains. For a mutation 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 extremely concise with two sentences, no fluff. Every sentence adds information: the first states the action, the second clarifies the config parameter's nature. It is appropriately sized and front-loaded.

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?

For a create tool, the description omits expected output (e.g., returns created destination), prerequisites, or constraints. With no output schema, the description should at least hint at the return value. It also does not address error conditions or idempotency, leaving gaps for an AI agent.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds significant value by explaining that 'config is a free-form object whose shape depends on type' and provides a concrete example (S3 with bucket, region, endpoint, credentials). This guides the user beyond the generic schema description.

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

Purpose5/5

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

The description clearly states 'Create a backup destination' using a specific verb+resource. It distinguishes from sibling CRUD tools like list, get, update, delete by focusing on creation. The example of config shape further clarifies the 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 implicitly indicates when to use (to create a new backup destination) but does not explicitly mention alternatives or prerequisites. Given the tool name and context, it is adequate but lacks explicit guidance.

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

lattice_create_containerA

Add a container definition to a stack. Creates the record only — deploy the stack to actually start it. JSON-shaped fields are passed as strings, matching the API

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesImage tag, e.g. 'latest'
nameYesContainer name
imageYesImage, e.g. registry.appleby.cloud/openbucket-api
commandNoOverride the image command
volumesNoJSON object string of host:container volume mappings
env_varsNoJSON object string of environment variables
replicasNoReplica count
stack_idYesStack to add the container to
cpu_limitNoCPU limit in cores
entrypointNoOverride the image entrypoint
health_checkNoJSON object string describing the healthcheck
memory_limitNoMemory limit in bytes
port_mappingsNoJSON array string, e.g. '[{"container_port":"8000","host_port":"8080","protocol":"tcp"}]'
restart_policyNoe.g. 'unless-stopped', 'always'

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 record-only behavior and the string input requirement for JSON fields, but omits other behavioral details like authorization needs, error handling, or idempotency. This is adequate but leaves room for improvement.

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 with zero wasted words. The first sentence states the primary action, the second clarifies the behavioral scope and data format. Front-loaded and efficient.

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 14 parameters fully described in the schema, the description covers the critical behavioral context (record vs. deploy, string format for JSON fields). It lacks output description, but since no output schema exists, this is a minor gap for a creation tool that likely returns the new container ID.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that JSON-shaped fields (volumes, env_vars, port_mappings, health_check) are passed as strings, which is not obvious from the parameter descriptions alone. This elevates the score.

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

Purpose5/5

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

The description clearly states the action 'Add a container definition to a stack' and distinguishes from actual deployment with 'Creates the record only — deploy the stack to actually start it.' This verb+resource combination is specific and differentiates from sibling tools like lattice_deploy_stack.

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 tells when to use this tool (to create the record) and when not (to start it, use deploy). It also provides a practical tip about JSON-shaped fields being passed as strings. While it doesn't enumerate alternatives, the deployment distinction is sufficient for most use cases.

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

lattice_create_database_instanceB

Provision a database instance on a worker. Creates a real container. Omit port to have a free one allocated automatically — that is the recommended path; a port already in use returns 409 naming the conflict

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesInstance name (must be unique)
portNoHost port to expose. Omit to auto-allocate a free port from the managed range (20000-29999)
engineYesDatabase engine
passwordNoApplication user's password
usernameNoApplication user to create
cpu_limitNoCPU limit in cores
worker_idYesWorker to provision on
memory_limitNoMemory limit in MEGABYTES (the API converts to bytes; values under 6MB are rejected by Docker)
database_nameNoInitial database to create
root_passwordNoRoot/superuser password
engine_versionNoEngine version tag; the API picks a default when omitted
retention_countNoHow many automatic snapshots to keep
snapshot_scheduleNoCron expression for automatic snapshots
adopt_existing_volumeNoReuse a leftover data volume of the same name. Off by default — the engine skips initialisation when its data directory is non-empty, so it keeps its OLD credentials while the API records the new ones, and nothing looks wrong until a connection fails
backup_destination_idNoBackup destination for snapshots

TDQS

B3.4/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 disclose behavioral traits. It states that a real container is created and that using a port already in use yields a 409 conflict. However, it omits other important behaviors: success response, effects on existing resources, authentication needs, and whether the operation is idempotent. This is insufficient for a 15-parameter provisioning 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?

The description is two sentences, each serving a purpose. The first sentence states the primary action concisely. The second provides actionable guidance on a key parameter. There is no redundancy or filler. It is front-loaded with the core purpose.

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 complexity (15 parameters, no output schema), the description is brief. It explains the port behavior but does not describe the success return value, common error scenarios beyond 409, or how to interpret the result. For a tool with many optional parameters, the description is minimally adequate but could provide more context about defaults and outcomes.

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

Parameters4/5

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

Schema description coverage is 100%, providing baseline meaning for all parameters. The description adds meaningful context beyond the schema: it explains the recommended usage for `port` (auto-allocation) and the error handling (409 on conflict). It also frames the overall action as creating a 'real container'. This adds value beyond the schema definitions.

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 action ('Provision a database instance on a worker') and mentions it creates a real container. It is distinct from listing or updating database instances, but does not explicitly differentiate from the sibling tool `lattice_create_container` which also creates containers. Thus, it is clear but lacks explicit sibling differentiation.

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 specific guidance on the `port` parameter (recommendation to omit it and behavior on conflict: returns 409). However, it does not give broader usage context, such as when to use this tool versus alternatives like `lattice_create_container`, or prerequisites like requiring a worker. Some guidance is present but incomplete.

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

lattice_create_database_snapshotA

Take a snapshot of a database instance now, outside its schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

TDQS

A3.5/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 carry the full burden of behavioral disclosure. It states that the snapshot is taken instantly and outside schedule, but it does not mention any side effects (e.g., performance impact, idempotency, error handling, or what happens if a snapshot already exists). For a creation action, more transparency is needed.

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

Conciseness5/5

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

The description is a single sentence with no extraneous information. It is highly concise and front-loaded with the key action and context, earning a top score for efficiency.

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 tool's simplicity (one required parameter, no output schema), the description provides the core functionality. However, it lacks details about the snapshot process (e.g., is it asynchronous?), what the tool returns, and any constraints. It is minimally complete but could be more informative.

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

Parameters3/5

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

Schema coverage is 100% with a single 'id' parameter described as 'Database instance ID'. The description does not add any additional meaning beyond the schema, such as how to obtain the ID or constraints. Since the schema already provides adequate documentation, this is at baseline level (3).

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

Purpose5/5

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

The description clearly specifies the action ('take a snapshot'), the resource ('database instance'), and the context ('now, outside its schedule'). It distinguishes from related sibling tools like list, restore, or delete snapshots, and implies it is an on-demand operation separate from scheduled snapshots.

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 that the tool takes a snapshot immediately, outside the normal schedule, which implies on-demand use. However, it does not explicitly state when to use this vs. scheduling a snapshot, nor does it mention prerequisites (e.g., database must exist) or when not to use it. Some guidance is implied but not explicit.

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

lattice_create_deploy_tokenA

Create a deploy token for a stack. The plaintext is returned once and this server masks it to its first two characters, so the usable value never enters a transcript — read it from the Lattice UI, or set LATTICE_ALLOW_SECRET_VALUES=1. Used as https:///api/deploy/?container=

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID
nameYesToken name, e.g. 'github-actions'

TDQS

A4.6/5.0
Behavior5/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 plaintext is returned only once, the server masks it to first two characters, the usable value never enters the transcript, and the env var LATTICE_ALLOW_SECRET_VALUES=1 can bypass masking. This is excellent transparency for a sensitive token creation.

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 with the core purpose. Every sentence provides necessary information without redundancy. Highly concise 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 output schema, the description explains the return behavior (plaintext once, masking) and usage. It could mention error cases or idempotency, but it is fairly complete for a create action.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are already documented. The description adds context: an example token name 'github-actions', and the URL pattern where the token is used. This adds value 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 starts with 'Create a deploy token for a stack,' which is a specific verb and resource. It clearly distinguishes from sibling tools like lattice_list_deploy_tokens and lattice_delete_deploy_token.

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 the behavior (plaintext returned once, masking, env var override) and gives usage context (URL format). It does not explicitly state when not to use, 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.

lattice_create_env_varB

Create a global environment variable

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesVariable name, referenced as ${KEY}
valueYesValue
is_secretNoMask the value in listings

TDQS

B3.1/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 convey behavioral traits. It only says 'Create', omitting details like whether it overwrites an existing key, if it requires specific permissions, or what happens on duplicate.

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 a single, efficient sentence with no wasted words. However, it may be overly minimal for a tool that could benefit from more context.

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?

With no output schema and only a terse description, the tool lacks completeness. Important details (e.g., return value, error behavior, idempotency) are missing, making it harder for an agent to use correctly.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions (key, value, is_secret). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Create') and resource ('global environment variable'), clearly stating the tool's action. It effectively distinguishes from sibling tools that list, update, or delete environment variables.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., lattice_update_env_var for updating an existing variable). No exclusions or context are given.

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

lattice_create_registryB

Add a container registry

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesRegistry URL, e.g. registry.appleby.cloud
nameYesRegistry name
typeYesRegistry type, e.g. 'generic', 'dockerhub', 'ghcr'
passwordNoRegistry password or access token
usernameNoRegistry username

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits such as authentication needs, side effects, or response behavior.

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

Conciseness4/5

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

The description is a single sentence, which is concise and includes the core purpose. However, it could be slightly more informative.

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?

With 5 parameters and no output schema, the description is too minimal. It does not explain what the tool returns, error conditions, or any operational context.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are documented in the schema. The description adds no additional context, meeting the baseline of 3.

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

Purpose5/5

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

The description 'Add a container registry' clearly states the action (add) and the resource (container registry), and distinguishes from sibling tools like update and delete.

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 is provided on when to use this tool versus alternatives (e.g., update, test), prerequisites, or required configurations.

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

lattice_create_stackA

Create an empty stack. Add containers with lattice_create_container, or use lattice_import_compose to create one from compose YAML

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStack name
env_varsNoStack-level env vars as a JSON object string
worker_idNoWorker to pin the stack to
auto_deployNoRedeploy automatically when a new image is pushed
descriptionNoDescription
deployment_strategyNoDeployment strategy, e.g. 'rolling', 'recreate'

TDQS

A3.7/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states 'Create an empty stack' without detailing side effects, error conditions (e.g., duplicate name), auth requirements, or what 'empty' means (e.g., no containers but can have env vars).

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 action. No wasted words. Efficient and clear.

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?

The description covers the core purpose and alternatives, but for a create tool without an output schema, it lacks information about return values or error cases. Adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-described. The description adds no additional meaning about parameters; it does not mention any parameter details.

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

Purpose5/5

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

The description clearly states it creates an empty stack, and distinguishes from sibling tools by mentioning alternatives for adding containers (lattice_create_container or lattice_import_compose). The verb 'Create' and resource 'empty stack' are specific.

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: create an empty stack first, then add containers via alternatives. It implies when to use alternatives but does not explicitly state prerequisites or 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.

lattice_create_templateB

Create a stack template from a config document

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTemplate name
configYesTemplate configuration as a JSON string
descriptionNoDescription

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral aspects like idempotency, validation, or permissions. It merely restates the tool's purpose without any additional 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 a single concise sentence that is front-loaded with the main verb and resource. However, it could benefit from more detail without being verbose.

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 the absence of an output schema and the need to explain what a 'config document' entails, the description is too minimal. It lacks context about the template creation process and does not clarify the JSON config format.

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?

All three parameters have descriptions in the schema (100% coverage), so the description adds no extra meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Create'), the resource ('a stack template'), and the source ('from a config document'). It distinguishes from sibling tools like lattice_save_stack_as_template and lattice_list_templates.

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 is provided on when to use this tool vs alternatives, such as lattice_save_stack_as_template, or any prerequisites like needing a valid config document.

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

lattice_create_userB

Create a local Lattice user

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name
roleYesRole, e.g. 'admin', 'editor', 'viewer'
emailYesEmail address
passwordYesInitial password

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states 'create', which implies mutation. It omits important traits such as required permissions, duplicate handling, or side effects, leaving agents uninformed.

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 a single concise sentence with no unnecessary words. While it could benefit from more detail, it maintains efficiency.

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?

The description covers the basic purpose but lacks information about return values or success criteria. Given the absence of an output schema and the tool's simplicity, it is minimally adequate but could be more complete.

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

Parameters3/5

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

All parameters are fully described in the input schema (100% coverage). The description adds no additional meaning, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Create a local Lattice user' clearly states the action (create) and the resource (local Lattice user), distinguishing it from sibling tools like lattice_update_user or lattice_delete_user.

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 is provided on when to use this tool versus alternatives like lattice_update_user or lattice_list_users. The description does not mention any prerequisites or exclusions.

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

lattice_create_webhookA

Create an outbound webhook. events is a JSON array string, e.g. '["container.status"]' or '["*"]' for everything

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDestination URL
nameYesWebhook name
eventsYesJSON array string of event types, or '["*"]' for all
secretNoShared secret used to sign deliveries

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided; description only explains the events parameter format but omits behavioral traits such as return value, side effects, or authorization requirements.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and a clear example, no wasted words.

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 or annotations; description lacks details on return value, response, or behavior of unused parameters like secret. Adequate but could be more informative.

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 100% coverage with descriptions; description adds value with a concrete example for the events parameter, enhancing understanding beyond schema alone.

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

Purpose5/5

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

Clearly states 'Create an outbound webhook' with a specific verb and resource. Differentiates from sibling tools like list, update, delete, and test webhooks.

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?

Implicitly indicates use for creation via the verb 'Create', but lacks explicit guidance on when not to use or alternatives like updating an existing webhook.

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

lattice_create_workerA

Register a worker. The machine still needs the runner installed and a worker token before it connects

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorker name
labelsNoJSON object string of labels used by placement constraints
hostnameYesHostname
ip_addressNoIP address

TDQS

A3.9/5.0
Behavior3/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 indicates that registration is a persistent action and mentions post-registration steps, but lacks details on idempotency, error conditions, or the return value.

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 sentences. The first sentence front-loads the core purpose, and the second adds essential prerequisite context without 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?

Given the absence of an output schema and the tool's role in a workflow, the description could mention the resulting worker state (e.g., pending) or link to subsequent steps like token creation. It provides good prerequisite info but lacks lifecycle context.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning or usage guidance for individual parameters (e.g., name format, hostname significance).

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 ('Register a worker') and resource. It distinguishes from sibling tools like delete, get, list, and token creation.

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

Usage Guidelines4/5

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

The description provides clear context: the worker registration is a prerequisite step that requires additional setup (runner installation and token). However, it does not explicitly contrast with alternatives or state 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.

lattice_create_worker_networkB

Create a Docker network on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesNetwork name
driverNoNetwork driver (defaults to 'bridge')

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 should disclose behavioral traits such as idempotency, error conditions (e.g., network already exists), or required permissions. The description only states the basic action, leaving the agent without critical 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 a single, concise sentence that front-loads the essential information. It is appropriately sized but could benefit from a brief note about usage context without being verbose.

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 the lack of annotations and output schema, the description is insufficient. It does not explain the effect on the worker, how to verify success, or any constraints (e.g., network name uniqueness). A more complete description would cover these aspects.

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?

The input schema has 100% description coverage for all three parameters, so the description does not need to add much. However, it adds no additional context beyond what is already in the schema, such as the meaning of 'id' (worker ID) or the impact of different drivers.

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 ('Create'), the resource ('Docker network'), and the scope ('on a worker'). This distinguishes it from sibling tools like list and delete operations.

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 when a new Docker network is needed on a worker, but provides no explicit guidance on when to use this tool versus alternatives (e.g., creating networks via Compose or other methods). It also does not mention any prerequisites or exclusions.

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

lattice_create_worker_tokenA

Create a registration token for a worker, used by the runner to connect. Plaintext is returned once and this server masks it to its first two characters — read the usable value from the Lattice UI, or set LATTICE_ALLOW_SECRET_VALUES=1

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesToken name

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully discloses key behaviors: token is returned once, plaintext masked to first two characters, and a workaround via environment variable. This is thorough for a security-sensitive 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?

The description is two sentences: first clearly states purpose, second adds crucial behavioral details. No redundant information, well 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?

Given the simple two-parameter tool without output schema or annotations, the description covers purpose, behavior, and security. Minor omission: no mention of idempotency or error states, but acceptable for the complexity.

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

Parameters3/5

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

Schema provides 100% description coverage for both parameters (id and name). The tool description adds no new semantic meaning beyond linking id to 'worker' and name to 'token name', so baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool creates a registration token for a worker, and the context of siblings like lattice_list_worker_tokens and lattice_delete_worker_token helps differentiate it as a creation action.

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 the tool is used when needing a worker registration token, but does not explicitly compare to alternatives or specify when not to use it, lacking negative guidance.

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

lattice_create_worker_volumeC

Create a Docker volume on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesVolume name
driverNoVolume driver (defaults to 'local')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action but omits side effects, required worker state, permissions, or whether the volume is immediately usable. The agent is left to infer behavior from the name and schema.

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 very short (5 words) and contains no superfluous information. It gets straight to the point. While extremely concise, it could be slightly expanded without losing efficiency.

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 simplicity of the tool (create a volume with three straightforward parameters) and no output schema, the description is minimally adequate. It fails to mention that the worker must exist or that the volume is Docker-local, but for a basic CRUD create, it is sufficient alongside the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter's purpose is already explained in the input schema. The description adds no additional meaning or context for the parameters. Baseline score of 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action 'Create' and the resource 'Docker volume on a worker', which distinguishes it from sibling tools like lattice_delete_worker_volume or lattice_list_worker_volumes. However, it could be more specific by mentioning that the volume is created for a specific worker identified by the 'id' parameter.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives (e.g., creating a network), nor does it specify prerequisites or conditions. The agent receives no context about appropriate use cases.

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

lattice_database_actionA

Start, stop, restart or remove a database instance's container. 'remove' destroys the container — data survives only if the volume or a snapshot does

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
actionYesAction to perform

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description warns that 'remove' destroys the container and data survival depends on volumes or snapshots. This adds critical safety context. However, it doesn't disclose other behaviors like idempotency or error states for start/stop/restart.

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?

A single sentence with critical warning about data destruction. No wasted words; all information is front-loaded and earns its place.

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 simple actions and no output schema, the description covers the main behavior and the destructive case. However, it could mention expected return values or error behavior for completeness.

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 descriptions already cover both parameters (id and action) with clear labels. The tool description does not add extra parameter-level detail beyond the schema, so baseline 3 applies per schema coverage >80%.

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 (start, stop, restart, remove) and resource (database instance's container), and distinguishes it from sibling tools like lattice_stop_container by targeting database containers specifically.

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 database container lifecycle, but does not explicitly compare with sibling tools (e.g., lattice_stop_container) or provide when-not-to-use guidance. Context allows inference but lacks explicit direction.

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

lattice_delete_api_tokenB

Delete an API token

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAPI token ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description only states 'Delete' which implies destructive action but does not disclose side effects, irreversibility, or required permissions. Minimal behavioral disclosure.

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?

Single sentence with four words, extremely concise and front-loaded. Contains no redundant information.

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?

Despite low complexity, description fails to mention that token must exist, that deletion is irreversible, or how to obtain the token ID. Incomplete for safe usage.

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 covers 100% of parameters with description for 'id' (API token ID). Description adds no extra meaning beyond schema, so baseline score is appropriate.

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

Purpose5/5

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

Description clearly states verb 'Delete' and resource 'API token', distinguishing it from sibling tools like lattice_list_api_tokens and lattice_create_api_token.

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, prerequisites (e.g., token must exist), or alternatives. Lacks context for proper invocation.

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

lattice_delete_backup_destinationB

Delete a backup destination. Instances pointing at it lose their backup target. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBackup destination ID

TDQS

B3.4/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 that instances pointing to the backup destination lose their target and labels the action as 'Destructive'. This provides essential behavioral context but lacks details on irreversibility, permission requirements, or potential cascading effects beyond instances.

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 with no wasted words. First sentence states the core action, second adds a critical side effect. Front-loaded and efficient.

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 delete tool with one parameter and no output schema, the description covers the essential points: what is deleted, its destructive nature, and the consequence for associated instances. Could be slightly improved by explicitly stating that deletion is irreversible, but 'destructive' implies that.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'id' (Backup destination ID). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly states the action 'Delete a backup destination', which is a specific verb+resource. It distinguishes from sibling delete tools (e.g., delete_stack, delete_api_token) by naming the resource type. However, it could be more precise by specifying that deletion is by ID.

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 versus alternatives like lattice_update_backup_destination or lattice_list_backup_destinations. Does not mention prerequisites (e.g., need to reassign instances before deletion) or situations where it should not be used.

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

lattice_delete_containerA

Delete a container definition and its running container. Destructive — lattice_stop_container only stops it

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

A4.4/5.0
Behavior4/5

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

The description labels the operation as 'destructive' and clarifies it deletes both definition and running container. While no annotations exist, this adds useful behavioral context beyond the schema.

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

Conciseness5/5

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

The description consists of two short, efficient sentences that front-load the core purpose and key comparison. No extraneous 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?

The description covers purpose and a key sibling distinction for a simple one-parameter tool. It could mention prerequisites or undoing the operation, but the core information is present.

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

Parameters3/5

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

The schema already describes the sole parameter 'id' as 'Container ID' (100% coverage). The description does not add further semantic details about the parameter.

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

Purpose5/5

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

The description specifies 'Delete a container definition and its running container', clearly stating the verb and resource. It also contrasts with 'lattice_stop_container', distinguishing it from a 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 Guidelines5/5

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

The description explicitly states when to use this tool ('delete') vs. the alternative 'lattice_stop_container' (which only stops). This provides clear guidance on tool selection.

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

lattice_delete_database_instanceA

Delete a database instance record. Destructive — data is lost unless a snapshot exists. Check lattice_list_database_snapshots first

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

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 carries the full burden. It clearly states the destructive nature ('data is lost unless a snapshot exists'), which is the key behavioral trait. However, it does not disclose other aspects like permission requirements or irreversibility, which would be needed for a 5.

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 short sentences: purpose, consequence, and recommendation. Every sentence serves a distinct purpose (action, warning, prerequisite), and the most critical information is 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?

Given the simplicity of the tool (one parameter, no output schema, no annotations), the description covers the core needs: purpose, destructive impact, and a safety net. It lacks details on return values or error scenarios, but those are not critical for this single-action tool.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no extra meaning beyond what the schema provides. The schema already describes 'id' as 'Database instance ID'—the description does not elaborate on format, constraints, or usage tips, meeting the baseline but not exceeding it.

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 'Delete' and the resource 'database instance record', making the purpose unambiguous. It distinguishes itself by warning about data loss and recommending a prerequisite check, which helps differentiate from related tools like lattice_delete_database_snapshot.

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 on when to use this tool: after checking snapshots via lattice_list_database_snapshots. It does not list alternatives but the context is sufficient for safe usage. A slightly higher score would require explicit exclusions or comparison with sibling tools.

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

lattice_delete_database_snapshotA

Delete a database snapshot. Destructive — that restore point is gone

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_idYesSnapshot ID

TDQS

A3.5/5.0
Behavior3/5

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

The description conveys the key behavioral trait (irreversible deletion) with the note 'Destructive — that restore point is gone.' However, with no annotations, it lacks details on permissions, side effects, or async 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?

Extremely concise with two short sentences. No filler or redundant 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?

For a simple delete operation, the description covers the essential purpose and consequence. Missing context includes how to retrieve the snapshot ID, synchronous vs async execution, and return value.

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

Parameters3/5

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

Schema coverage is 100%, so the parameter 'snapshot_id' is documented. The description adds no extra meaning about how to obtain or validate the snapshot ID.

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 ('Delete a database snapshot') and highlights the destructive nature, distinguishing it from related tools like create or restore.

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, such as restoring instead of deleting. Only a warning about destructiveness, but no prerequisites or context.

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

lattice_delete_deploy_tokenA

Delete a deploy token. Any CI pipeline using it stops being able to deploy. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYesDeploy token ID

TDQS

A4/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 warns 'Destructive' and describes the consequence of stopping CI deployments, but lacks details on permissions or irreversibility.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the action and consequence, with zero extraneous 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?

For a simple deletion tool with one parameter and no output schema, the description is sufficient. It provides the key behavioral note about CI pipelines, though it could mention that deletion is irreversible.

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

Parameters3/5

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

Schema coverage is 100%, and the schema describes 'token_id' as 'Deploy token ID'. The description adds no additional meaning beyond that.

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 a deploy token', which is a specific verb-resource pair. It distinguishes from sibling tools like lattice_create_deploy_token and lattice_list_deploy_tokens.

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 that any CI pipeline using the token stops deploying, implying careful use, but it does not explicitly state when to use or avoid this tool, or provide alternatives.

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

lattice_delete_env_varA

Delete a global environment variable. Any config referencing ${KEY} fails to interpolate on next deploy. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEnv var ID

TDQS

A4/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 for behavioral disclosure. It explicitly names the destructive effect ('fails to interpolate on next deploy') and labels the tool as 'Destructive'. This is good for a delete tool, though it could mention permission requirements.

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

Conciseness5/5

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

Two sentences with no redundancy. The first sentence states the action, the second explains the key consequence, and the final word 'Destructive' reinforces the nature. Every part earns its place.

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 delete tool with one parameter and no output schema, the description adequately explains the effect on config interpolation. It could hint at irreversibility, but overall it is sufficiently 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.

Parameters3/5

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

Schema coverage is 100% with a single parameter 'id' described as 'Env var ID'. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Delete'), the resource ('a global environment variable'), and the consequence ('Any config referencing ${KEY} fails to interpolate on next deploy'). It differentiates from sibling tools like lattice_create_env_var and lattice_update_env_var.

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 that deleting an env var should be done when the variable is no longer needed, but it does not explicitly state when to use this tool vs. alternatives like updating or creating. It provides context on the effect but lacks exclusion criteria.

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

lattice_delete_networkC

Delete a tracked network by its Lattice ID. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNetwork ID

TDQS

C2.9/5.0
Behavior2/5

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

Description labels the tool as 'Destructive' but lacks further details on consequences, reversibility, or side effects. With no annotations, more behavioral context is needed.

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

Conciseness4/5

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

Extremely concise (two short sentences). Front-loaded with action and resource. However, under-specification limits usefulness.

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?

For a simple deletion tool, the description lacks detail on return values, prerequisites (e.g., network must exist), and idempotency. Incomplete for confident usage without external knowledge.

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

Parameters3/5

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

Schema coverage is 100%, with one required id parameter described as 'Network ID'. Description adds 'by its Lattice ID' but this does not add meaningful semantics 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?

Description clearly states the tool deletes a tracked network by Lattice ID, using specific verb and resource. However, it does not differentiate from sibling tools like lattice_delete_worker_network, which also delete networks.

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 versus alternatives (e.g., lattice_delete_worker_network). No explicit when or when-not criteria provided.

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

lattice_delete_registryA

Delete a registry. Containers pulling from it fail on their next deploy. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRegistry ID

TDQS

A3.6/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 destructive nature and impact on containers, but does not describe recovery options, permission requirements, or other behavioral traits beyond the stated effect.

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—first defines action, second adds critical consequence. No redundant 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?

For a simple single-parameter delete tool with no output schema, the description is mostly complete. It could mention preconditions or permissions but is adequate given low complexity.

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

Parameters3/5

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

Schema coverage is 100% and describes the 'id' parameter as 'Registry ID'. The description adds nothing to parameter meaning, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (delete a registry) and provides specific consequence (containers fail on next deploy), distinguishing it from other registry tools like create or update.

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 other delete tools (e.g., lattice_delete_stack) or prerequisites. The description implies destructive use but lacks context for decision-making.

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

lattice_delete_stackA

Delete a stack and every container in it. Destructive and not recoverable — export it first with lattice_export_stack if you might want it back

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description fully carries the burden, explicitly stating 'Destructive and not recoverable' and that it deletes all containers. Minor gap: does not mention what happens to associated volumes or networks.

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, no fluff, each sentence adds critical value: the action and the warning/alternative.

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 required parameter and no output schema, the description is nearly complete. It covers what it does, the irreversible nature, and a preventive action. Lacks mention of return value or synchronicity, but that is minor for a delete tool.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', which is described as 'Stack ID'. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states that it deletes a stack and every container in it, using a specific verb and resource, and distinguishes it from other delete tools like lattice_remove_container which only removes a single container.

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 advises to export first using lattice_export_stack if the stack might be needed again, providing clear when-to-use and when-not-to-use guidance.

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

lattice_delete_templateB

Delete a stack template. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTemplate ID

TDQS

B3.2/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 only says 'Destructive', which hints at irreversibility but lacks details on permissions, side effects, or dependencies. For a delete tool, more context is expected.

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 extremely concise (two short sentences) with no wasted words. For a simple tool, this is acceptable, though it could benefit from slightly more structure (e.g., bullet points).

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 tool's simplicity (one param, no output schema), the description is minimally adequate. It states the action and notes destructiveness, but lacks further context like prerequisites or typical use cases.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter 'id' described as 'Template ID'. The description does not add any additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Delete a stack template', specifying the verb 'Delete' and the resource 'stack template'. It distinguishes from sibling tools like lattice_delete_stack (deletes stack) and lattice_create_template (creates template).

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?

The description provides no guidance on when to use this tool vs alternatives. It does not mention exclusions or context like 'use this to delete a template, not a stack'. The word 'Destructive' implies caution but is not explicit usage guidance.

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

lattice_delete_userC

Delete a Lattice user. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUser ID

TDQS

C2.8/5.0
Behavior2/5

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

The description only labels the operation as 'Destructive', which is minimal. With no annotations, the agent needs more disclosure: e.g., whether the deletion is permanent, cascading effects on related data, required permissions, or any safety warnings. This is insufficient for a delete operation.

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

Conciseness3/5

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

The description is extremely brief (two words plus 'Destructive'), which is concise but sacrifices completeness. It is front-loaded with the action, but the terse nature means it fails to provide necessary context. It earns its place but needs expansion.

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 it is a destructive deletion tool with no output schema and no annotations, the description should include information about return values, error handling, or confirmation. The current description is too sparse for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', which is described as 'User ID' in the schema. The description adds no extra semantics beyond what the schema provides. Baseline score of 3 is appropriate.

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 action ('Delete') and resource ('Lattice user'), which is specific. However, it does not distinguish this tool from siblings beyond the action itself; more context on scope (e.g., 'Permanently removes a user from the system') would improve differentiation.

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 versus alternatives like lattice_update_user or lattice_list_users. The description lacks any context about prerequisites, conditions, 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.

lattice_delete_webhookB

Delete a webhook. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook ID

TDQS

B3.4/5.0
Behavior3/5

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

The description includes the term 'Destructive', hinting at irreversibility, but does not elaborate on consequences (e.g., whether active integrations are affected). With no annotations provided, this is minimal but better than nothing.

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 extremely brief (four words), which is efficient for a simple delete action. However, it sacrifices clarity on usage and behavior, making it slightly too terse.

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 tool's simplicity (one parameter, no output schema), the description is partially adequate. It states the action and a destructive warning, but omits return value or confirmation of deletion.

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?

The input schema fully documents the required 'id' parameter with a description ('Webhook ID'). The description adds no additional meaning beyond what the schema already provides, meeting the baseline.

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

Purpose5/5

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

The description explicitly states the action (Delete) and the resource (webhook), making it clear what the tool does. It distinguishes cleanly from sibling tools like lattice_create_webhook and lattice_update_webhook.

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 is provided on when to use this tool versus alternatives (e.g., test_webhook or create_webhook). The description lacks context about prerequisites or scenarios.

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

lattice_delete_workerA

Delete a worker. Every stack pinned to it becomes undeployable. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

A4.1/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 and reveals the destructive nature and consequence for stacks, which is sufficient for a delete 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?

Two sentences, no wasted words, front-loaded with action and consequence.

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 delete tool with one parameter and no output schema, the description covers all necessary context, including side effects.

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?

The only parameter 'id' is fully described in the schema, and the description adds no additional meaning beyond 'Worker ID', achieving baseline for 100% 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 'Delete' and the resource 'worker', and distinguishes from sibling tools like lattice_create_worker by specifying the destructive nature and side effect on stacks.

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 caution by noting that stacked become undeployable, but does not explicitly state when to use or avoid this tool compared to alternatives like updating the worker.

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

lattice_delete_worker_networkA

Delete a Docker network on a worker. Containers attached to it lose connectivity. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesNetwork name

TDQS

A4/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 declares the tool as 'Destructive' and notes that containers lose connectivity, adequately disclosing the most critical behavioral impact. It does not mention permissions or reversibility but covers the primary consequence.

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 sentences: one for purpose and one for consequence. Every word earns its place with no redundancy.

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

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 simple parameters, the description covers the core action and effect. It lacks details on return value or error handling, but for a straightforward delete operation this is acceptable.

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?

The input schema has 100% coverage with descriptions ('Worker ID', 'Network name'). The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Delete'), the resource ('Docker network on a worker'), and the consequence ('Containers attached to it lose connectivity'). It effectively distinguishes from sibling tools like lattice_create_worker_network and lattice_list_worker_networks.

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 deleting a Docker network from a worker, and the warning about connectivity loss suggests caution. However, it does not explicitly state when to use versus alternatives, nor provides explicit 'when not to use' guidance.

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

lattice_delete_worker_tokenA

Delete a worker token. If the runner is using it, it cannot reconnect after a restart. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYesWorker token ID

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 full burden. It explicitly labels the tool as 'Destructive' and describes the impact on runner connectivity, which is valuable behavioral context.

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

Conciseness5/5

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

The description is very concise with two sentences, no wasted words, and front-loaded with the action verb.

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 delete operation with one parameter and no output schema, the description is complete. It covers the action, consequence, and required parameter.

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?

Since schema description coverage is 100%, the baseline is 3. The description does not add additional meaning beyond what the schema already provides for the single parameter.

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

Purpose5/5

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

The description clearly states the action (delete) and the resource (worker token), distinguishing it from sibling tools like lattice_create_worker_token and lattice_list_worker_tokens.

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 context on when to use (to delete a token) and warns about the consequence for runners. However, it does not explicitly state 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.

lattice_delete_worker_volumeA

Delete a Docker volume on a worker. Any data stored in it is destroyed. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesVolume name

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behaviors. It states 'Any data stored in it is destroyed' and labels the operation as 'Destructive', which is helpful. However, it does not mention required permissions, effects on running containers, or whether the volume must be unmounted first. Partial but 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 short, front-loaded sentences. The first sentence directly states the action, and subsequent sentences add key consequences. Every sentence is meaningful with zero 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?

Given no output schema and two simple parameters, the description covers the core action and its destructive consequence. It could mention return value format or prerequisites (e.g., volume not in use), but for a straightforward deletion, it is largely sufficient.

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

Parameters3/5

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

Schema coverage is 100% (both id and name have descriptions). The description adds no parameter-specific meaning beyond what the schema provides. According to guidelines, baseline is 3 when coverage is high, and no extra value is added.

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: 'Delete a Docker volume on a worker'. It identifies the resource (volume) and the verb (delete), and the mention of destroyed data adds clarity about the effect. This distinguishes it from sibling creation or listing tools like lattice_create_worker_volume.

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 deletion when the volume is no longer needed, but provides no explicit guidance on when to avoid this tool (e.g., if the volume is in use) or alternatives. It lacks when-not-to-use context, which is important for a destructive action.

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

lattice_deploy_stackB

Deploy a stack (all containers or specific ones)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID
forceNoForce redeploy — removes all containers and recreates from scratch
container_idsNoSpecific container IDs to deploy (omit for all)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, description carries full burden. Only mentions force redeploy behavior from parameter description, but does not disclose downtime, rebuild implications, or reversibility.

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?

Very concise single sentence, but lacks structure (e.g., bullet points). Could be more informative without being verbose.

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 no output schema and 3 parameters, description is minimal. Does not explain return values, error handling, or necessary conditions for a deployment action.

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 already covers 100% of parameters with descriptions. Description adds no additional semantics beyond what schema 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 uses specific verb 'deploy' and resource 'stack', and distinguishes between deploying all or specific containers. This clearly sets it apart from sibling tools like create, delete, restart, etc.

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., restart_stack, start_stack, create_stack). No prerequisites or conditions mentioned.

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

lattice_export_stackA

Export a stack's full definition — stack settings plus every container config — as a portable JSON document. Take one before any destructive stack change

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

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 implies the tool is read-only by saying 'export', but does not explicitly state safety (no side effects) or mention any authorization requirements. More detail on behavioral traits would improve 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?

Two sentences, front-loaded with the core action and a usage hint. Every sentence is valuable and there is 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?

Given a simple single-parameter tool with no output schema, the description explains what it does, what it returns (portable JSON), and when to use it. It could optionally describe the JSON structure, but not necessary for clarity. Completeness is good.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Stack ID'. The description adds context about what is exported (full definition) but does not add meaning beyond the schema's parameter description. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Export' and the resource 'a stack's full definition', including details about scope (stack settings plus every container config) and output format (portable JSON). This distinguishes it from sibling tools like lattice_delete_stack or lattice_update_stack.

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 advises to 'Take one before any destructive stack change', providing clear when-to-use context. However, it does not mention when NOT to use it or alternative tools, but the advice is strong enough for a 4.

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

lattice_force_remove_containerA

Force-remove a container on a worker by name, bypassing the normal lifecycle. For clearing a wedged container that ordinary remove will not shift. Destructive

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameYesContainer name to force-remove

TDQS

A3.8/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 of behavioral disclosure. It labels the tool as 'Destructive' but does not elaborate on the consequences of bypassing the normal lifecycle, such as potential data loss or resource leaks. The description is vague about what exactly happens during a force removal.

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 exceptionally concise with only three sentences (or two sentences and a single word). It is front-loaded with the primary action, then the use case, and finally a tag indicating destrutive nature. 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?

For a simple tool with two required parameters and no output schema, the description covers the purpose and usage scenario adequately. It is missing details about the return value or confirmation of the operation, but the tool's simplicity and the clear sibling distinction make it fairly complete.

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

Parameters3/5

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

The input schema has 100% description coverage: 'id' is described as 'Worker ID' and 'name' as 'Container name to force-remove'. The description adds no additional parameter information beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('force-remove a container'), the target ('on a worker by name'), and the purpose ('bypassing the normal lifecycle'). It effectively distinguishes from the sibling tool 'lattice_remove_container' by emphasizing the forced nature and the wedged container scenario.

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 specifies when to use this tool: 'For clearing a wedged container that ordinary remove will not shift.' This provides clear context. However, it does not explicitly state when not to use it or mention other alternatives beyond the normal remove, but the guidance is sufficient for the intended use case.

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

lattice_get_anomaliesA

Get detected fleet anomalies — restart loops, unhealthy containers, resource spikes, offline workers. The best first call when asked whether anything is wrong

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 must convey behavior. It indicates a read-only retrieval of anomalies but does not disclose return format or any potential side effects. For a simple getter, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single well-structured sentence that states the purpose, lists examples, and provides usage guidance. 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 and no output schema, the description is sufficient for a simple anomaly list retrieval. It could mention the output type, but the context of sibling tools (many with more detailed descriptions) makes this 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 tool has zero parameters, so schema coverage is 100%. The description does not need to add parameter semantics; baseline 4 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 retrieves detected fleet anomalies, listing specific examples like restart loops and resource spikes. It explicitly distinguishes itself as a diagnostic tool among siblings focusing on metrics or management.

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 recommends it as 'the best first call when asked whether anything is wrong,' providing clear context. While alternatives are not mentioned, the guidance is strong for its intended use.

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

lattice_get_audit_logA

Get recent audit log entries (who did what, when). Filter by user, action, or resource type to answer 'who deleted X' without scanning.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of entries (default 50)
actionNoFilter by action (e.g. create, update, delete, deploy)
offsetNoSkip this many entries for pagination
user_idNoFilter by the user who performed the action
resource_typeNoFilter by resource type (e.g. stack, container, worker, registry)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must convey behavior. It states 'recent' and filtering capabilities but omits details like time range boundaries, pagination behavior (offset), or read-only nature. For a read-heavy audit tool, these are moderate gaps.

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, no wasted words. The first sentence states the core function, the second provides a concrete use case. Perfectly front-loaded and compact.

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 retrieval tool with well-documented parameters, the description covers the key aspects. Missing details like sorting order and result format, but output schema is absent and schema already defines parameters. Minor gap for a complete contextual picture.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3 is appropriate. The description reinforces the purpose of the parameters (e.g., 'filter by...') but does not add new semantics beyond the schema's property 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 retrieves recent audit log entries with specificity: 'who did what, when'. It distinguishes itself from sibling tools like metrics or container management by focusing on audit logs, and mentions key filtering dimensions (user, action, resource type).

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 suggests using filters to answer specific questions like 'who deleted X' without scanning, which implies efficient forensic usage. It does not enumerate when not to use or provide alternative tools, but the context of sibling tools makes the intended use clear.

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

lattice_get_backup_destinationB

Get one backup destination's configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBackup destination ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must carry full transparency burden. It states it gets a configuration but doesn't disclose read-only nature, permissions, or side effects. Lacks information on response structure.

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?

Single sentence, no unnecessary words. Front-loaded with key action and resource.

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 simple input (1 param, no output schema, no nested objects), the description is minimally adequate but could be more complete by hinting at the configuration fields returned.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', which is already described in the schema. The description adds no additional 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 'get', the resource 'backup destination', and the scope 'one configuration', distinguishing it from sibling tools like lattice_list_backup_destinations, lattice_create_backup_destination, etc.

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 versus alternatives. The description implies usage for retrieving a specific backup destination but lacks explicit context or exclusions.

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

lattice_get_containerA

Get full container details including config, health, env vars, ports

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, and the description describes a read-only operation ('Get full container details'). It does not mention any side effects, authentication requirements, rate limits, or other behavioral traits beyond the basic read 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?

The description is a single concise sentence that efficiently communicates the tool's purpose and scope, with 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?

Given the tool is a simple retrieval by ID with one parameter and no output schema, the description covers the essentials. It lists key details returned (config, health, env vars, ports), which is sufficient for an agent to understand the tool's scope.

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?

The input schema has 100% coverage for the single parameter 'id' (description: 'Container ID'). The description does not add any additional semantic meaning beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves full container details including config, health, env vars, and ports. This distinguishes it from siblings like lattice_list_containers (list only) and lattice_get_container_logs (logs only).

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 when full container details are needed, but it does not explicitly state when not to use it or mention alternative tools for specific details (e.g., logs, metrics).

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

lattice_get_container_lifecycleA

Get container lifecycle events (start, stop, restart, health changes)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID
limitNoNumber of events (default 50)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions the types of events but does not discuss pagination, ordering, error behavior, or side effects. The lack of detail about response format or limits beyond the schema leaves gaps.

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?

A single sentence that is concise, front-loaded with purpose, contains no fluff, and effectively communicates the core functionality.

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 tool with two parameters and no output schema, the description names the event types, which adds context. It lacks mention of ordering or response structure, but overall is fairly 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.

Parameters3/5

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

Schema coverage is 100% for both parameters (id and limit), with descriptions in the schema. The description does not add additional meaning beyond listing event types, which does not directly relate to parameters. Baseline is 3.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'container lifecycle events', and specifies the event types (start, stop, restart, health changes), distinguishing it from sibling tools like lattice_get_container_logs or lattice_get_container_metrics.

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 when-not-to-use guidance. However, the purpose is clear enough that an agent can infer usage context.

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

lattice_get_container_logsC

Get recent container logs (stdout/stderr)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID
limitNoNumber of log lines (default 50)
offsetNoSkip this many lines — paginate past the tail into older logs
streamNoFilter by stream
worker_idNoFilter by worker ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states the basic function and does not mention aspects like rate limits, authentication needs, whether logs are live or historical, or how 'recent' is defined. This is insufficient for a 5-parameter tool.

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 a single concise sentence that front-loads the verb and resource. It is appropriately sized, though it could be slightly more informative without sacrificing brevity.

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?

Despite 5 parameters and no output schema, the description is too brief. It omits context about log format, pagination behavior, the meaning of 'recent', and whether the tool supports live or archived logs. The schema fills in parameter details, but the overall behavior is under-specified.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides; it hints at 'stdout/stderr' which matches the stream parameter but does not elaborate on the other parameters like limit, offset, or worker_id.

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 verb 'Get' and resource 'recent container logs', with a note about stdour/stderr streams. However, it does not differentiate this tool from siblings like lattice_get_deployment_logs or lattice_get_container_lifecycle, which also involve logs.

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 guidance on when to use this tool versus alternatives, such as lattice_get_deployment_logs for deployment-level logs or lattice_get_container_lifecycle for lifecycle events. No usage context or exclusions are provided.

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

lattice_get_container_metricsB

Get a single container's CPU, memory and network metrics over time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID
limitNoMax data points
rangeNoTime range, e.g. '1h', '6h', '24h'

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 carries the full burden. It discloses the type of data returned (CPU, memory, network over time) but fails to mention behavioral traits like rate limits, authentication needs, data retention, or whether the operation is read-only.

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?

A single front-loaded sentence that conveys the essential purpose without unnecessary words. Every part earns its place, making it highly concise.

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 and no annotations, the description is somewhat complete for a simple metrics retrieval tool, but it lacks information on output format, pagination, or error handling. It could provide more context, especially compared to similar sibling tools.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description adds 'over time' which aligns with the 'range' parameter but does not provide additional meaning beyond the schema. Baseline 3 is appropriate as schema already documents parameters.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'a single container's metrics', and specifies the metric types (CPU, memory, network) over time. This distinguishes it from sibling tools like lattice_get_fleet_metrics (fleet-level) and lattice_get_worker_metrics (worker-level).

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 is provided on when to use this tool versus alternatives such as lattice_get_fleet_metrics or lattice_get_worker_metrics. The description does not mention prerequisites, exclusions, or context for selection.

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

lattice_get_database_connectionA

Get a database instance's host, port, database and username. Contains no secrets — prefer this over the credential tools when you only need to know where a database lives

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

TDQS

A4.5/5.0
Behavior4/5

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

Discloses that it contains no secrets, a key behavioral trait. With no annotations, this is valuable. Could mention response format but not needed for simple read.

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, zero waste. Front-loaded with action and output. 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?

Tools is simple with one param; description explains output fields and distinguishes from siblings. No gaps for an agent to misuse.

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 covers the single parameter with description. Description doesn't add extra meaning beyond that, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states verb 'Get' and resource 'database instance's host, port, database and username'. Distinguishes from credential tools by noting it contains no secrets.

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 to prefer this over credential tools when only need location info, naming the alternative. Provides clear when-to-use and 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.

lattice_get_database_credentialsA

DEPRECATED — returns root credentials from a plain GET. Use lattice_reveal_database_credentials instead, which is audited and scoped

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description highlights that this tool is unsecured and un-audited, contrasting with the replacement. It does not detail other behaviors like authentication requirements or rate limits, but the deprecation context mitigates the need.

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?

Single sentence with deprecation warning and replacement instruction. Every word is necessary 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 the deprecation, the description suffices for basic understanding but does not specify the return format of the credentials, which a user may still need if they invoke the tool despite the warning.

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

Parameters3/5

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

Schema coverage is 100% with a single well-described parameter. The description adds no extra meaning to the parameter beyond what the 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?

The description clearly states the tool 'returns root credentials from a plain GET' and distinguishes itself from the audited and scoped replacement lattice_reveal_database_credentials.

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 advises using the replacement tool instead, providing clear guidance against using this deprecated tool. However, it does not elaborate on when one might still need 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.

lattice_get_database_eventsA

Get a database instance's lifecycle history — every status transition, failure, reconciliation, console open and credential reveal. START HERE when a database is in an unexpected state: this is what explains how it got there

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
kindNoFilter by event kind
limitNoMax events to return

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 full burden. It discloses it returns lifecycle history covering specific events, but lacks information about auth requirements, rate limits, or whether it is read-only. The read-only nature is implied by 'history' but not explicitly 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 two concise sentences. The first defines the tool's output, the second gives usage guidance. No filler or redundant 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 has 3 parameters, no output schema, and no annotations, the description sufficiently explains purpose and usage context. However, it could mention return order (e.g., chronological) or how the limit parameter affects results. Still, it is adequate for an agent to understand the basic 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?

Schema coverage is 100%, so the schema already documents all parameters. The description adds context that the 'id' is a database instance ID, but does not provide additional meaning beyond what the schema offers. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'database instance's lifecycle history', listing specific event types (status transition, failure, etc.). It distinguishes itself from sibling tools like lattice_get_database_instance or lattice_get_database_logs by positioning itself as the starting point for investigating unexpected states, which is unique.

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 usage context: 'START HERE when a database is in an unexpected state: this is what explains how it got there.' This tells the agent when to use it, though it does not specify when not to use or name alternatives directly.

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

lattice_get_database_instanceA

Get one database instance: engine, port, limits, snapshot schedule, retention and backup destination

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must fully disclose behavioral traits. The verb 'Get' suggests a read-only operation, but no explicit statement about side effects, authentication requirements, or rate limits is included. The description is adequate but lacks 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?

A single sentence that is front-loaded with the core action ('Get one database instance') and efficiently enumerates returned attributes. 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 the simplicity of the tool (one parameter, no nested objects, no output schema), the description adequately lists the returned fields. It could optionally include output schema or more detail, but 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 single parameter 'id' is fully described in the schema. The tool description adds value by listing the fields returned, which compensates for the lack of an output schema and provides 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 it retrieves a single database instance and lists specific attributes (engine, port, limits, snapshot schedule, retention, backup destination), effectively distinguishing it from sibling tools that list all instances or get credentials.

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 use when details of a specific instance are needed, but does not explicitly state when to use this tool versus alternatives like lattice_get_database_credentials or lattice_get_database_connection. No exclusions or context are given.

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

lattice_get_database_lifecycle_logsB

Get worker-emitted lifecycle messages for a database container, including provisioning progress and the reason a create failed

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
limitNoMax entries to return

TDQS

B3.2/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 mentions the tool returns lifecycle messages with specific content (provisioning progress, failure reasons) but does not indicate whether it is read-only, what permissions are needed, or if there are rate limits or side effects. Minimal transparency beyond basic purpose.

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 a single, well-structured sentence (17 words) that efficiently conveys the tool's purpose. No extraneous words or repetition.

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 no output schema and no annotations, the description should provide more context about return format, pagination, or relationship to sibling tools. It omits details on the structure of lifecycle messages (e.g., timestamps, levels) and how this differs from lattice_get_database_events or lattice_get_database_logs. Overall incomplete.

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?

The input schema covers 100% of parameters (id, limit). The description adds context about returned content but does not elaborate on parameter semantics beyond what the schema provides. Baseline 3 is appropriate as the description adds marginal value.

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

Purpose5/5

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

The description clearly states the tool retrieves worker-emitted lifecycle messages for a database container, specifying the content includes provisioning progress and failure reasons. This distinguishes it from sibling tools like lattice_get_database_logs (general logs) and lattice_get_container_lifecycle (non-database lifecycle).

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 is provided on when to use this tool versus alternatives. There is no mention of when not to use it (e.g., for non-database containers) or how it differs from similar tools like lattice_get_database_events or lattice_get_container_lifecycle.

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

lattice_get_database_logsA

Get a database container's stdout/stderr. Use together with lattice_get_database_events when diagnosing a failed or degraded instance — the events say what happened, the logs say why

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
limitNoMax log lines to return
streamNoFilter by stream

TDQS

A3.9/5.0
Behavior3/5

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

The description states it returns stdout/stderr, but with no annotations, it lacks detail on behavior such as log ordering, pagination limits, permission requirements, or that logs are real-time or historical. It is not misleading 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?

Two sentences with no filler: first states purpose, second provides usage context. Every word earns its place.

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?

With no output schema and 3 parameters, the description is adequate for a simple log retrieval tool but does not explain return format, pagination, or how to interpret the logs. Could be more complete given the complexity of diagnosing failures.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are documented in the schema. The description adds no additional meaning beyond the schema, which is acceptable per baseline guidelines.

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 ('Get a database container's stdout/stderr') and the resource ('database container'), distinguishing it from sibling `lattice_get_database_events` by contrasting logs vs events.

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 recommends using together with `lattice_get_database_events` for diagnosing failed instances, providing clear usage context. However, it does not mention other alternatives like `lattice_get_database_lifecycle_logs` or container log tools.

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

lattice_get_deploymentB

Get deployment details including container-level status

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDeployment ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It implies a read operation but does not mention side effects, auth requirements, error handling (e.g., deployment not found), rate limits, or any additional context beyond 'details including container-level status'.

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?

Single sentence, front-loaded with action and resource. Concise but could potentially include more context without becoming verbose.

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?

For a simple get tool with no annotations, output schema, or rich context, the description leaves gaps. It does not specify what 'deployment details' entails beyond container-level status, nor does it indicate return format or error scenarios.

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?

Only one parameter (id) with schema description 'Deployment ID'. The tool description adds no further meaning, but schema coverage is 100%, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the tool retrieves deployment details including container-level status. It uses a specific verb ('Get') and resource ('deployment'), and distinguishes from siblings like lattice_list_deployments (which lists) and lattice_get_deployment_logs (which gets logs).

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 versus alternatives (e.g., lattice_get_deployment_logs, lattice_get_stack). No mention of prerequisites or when not to use it.

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

lattice_get_deployment_logsA

Get deployment logs: pull, create, start, swap, rollback events with timing

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDeployment ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It discloses the types of events and mentions 'timing', but does not indicate whether the operation is read-only, requires specific permissions, or has any side effects. For a simple log retrieval tool, this 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.

Conciseness5/5

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

The description is a single sentence that front-loads the resource and purpose, then lists key events. No unnecessary words; every word contributes 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 a single required parameter and no output schema, the description sufficiently explains what the logs contain and covers the event types. It could benefit from mentioning the output format (e.g., array of objects with timestamp and event), but it is nearly 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.

Parameters3/5

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

Only one parameter (id) with schema coverage 100%. The description does not add meaning beyond the schema's 'Deployment ID' label. Baseline 3 is appropriate as the parameter is simple and well-documented in the schema.

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

Purpose5/5

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

The description specifies a clear verb ('Get') and resource ('deployment logs'), and enumerates the types of events included (pull, create, start, swap, rollback). This differentiates it from sibling tools like lattice_get_deployment (which returns deployment details) and lattice_get_audit_log (which might cover broader events).

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 tool versus alternatives (e.g., lattice_get_audit_log or lattice_get_deployment). The description implies usage for deployment lifecycle events, but does not state prerequisites or when not to use it.

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

lattice_get_fleet_metricsA

Get aggregated fleet-wide CPU, memory, disk and network metrics over a time range

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNoTime range, e.g. '1h', '6h', '24h'

TDQS

A3.7/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 full burden. However, it does not disclose any behavioral traits such as authentication requirements, rate limits, whether the request is read-only, or any side effects. For a read-only metrics tool, basic safety context is missing.

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 a single sentence that is efficient and front-loaded with the key action and resource. Every word earns its place with no redundancy.

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

Completeness3/5

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

Given the tool's low complexity (one optional parameter, no output schema), the description covers the basic purpose. However, the lack of behavioral details (no annotations) and omission of any return format or aggregation type makes it only moderately complete.

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

Parameters3/5

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

Schema description coverage is 100% (1 parameter with description). The description adds 'over a time range', which aligns with the 'range' parameter but does not provide additional meaning beyond the schema's example. Baseline is 3 given high 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 verb 'Get' and the resource 'aggregated fleet-wide CPU, memory, disk and network metrics'. It specifies the scope (fleet-wide) and distinguishes from sibling tools like 'lattice_get_worker_metrics' (per-worker) and 'lattice_get_container_metrics' (per-container).

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 the tool is for fleet-wide metrics over a time range, but does not explicitly state when to use it versus alternatives or mention any exclusions. The context from sibling tool names helps, but the description alone lacks explicit usage guidance.

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

lattice_get_notification_prefsB

Get per-event notification preferences

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'Get', implying read-only. No details on what preferences are returned, structure, or side effects.

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

Conciseness4/5

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

Single sentence, no wasted words. However, it could include more information without becoming verbose.

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 and sparse description leave the agent uncertain about what data is returned. For a simple retrieval tool, more detail on the returned preferences is expected.

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?

No parameters exist, so schema coverage is 100%. The description adds no context about return values, so it fails to compensate beyond the baseline for zero 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?

Description uses a specific verb ('Get') and resource ('per-event notification preferences'), clearly distinguishing it from the sibling tool 'lattice_update_notification_prefs'.

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 versus alternatives like the update counterpart. The context of use is not provided.

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

lattice_get_selfA

Get the user this API token authenticates as, including role

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. It discloses the operation as a retrieval without side effects, but lacks details on authentication requirements or response structure.

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?

Single sentence of 11 words, highly concise and front-loaded with the key action and resource.

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?

For a tool with no parameters and no output schema, the description is adequate but minimal. It could mention the output structure or that no authorization is needed.

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, so description does not need to add parameter details. Zero parameters gives a baseline of 4.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'the user this API token authenticates as', and includes 'including role', which distinguishes it from sibling tools like lattice_get_database_credentials.

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 when-to-use or alternatives, but the function is self-explanatory given the tool name and context.

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

lattice_get_smtp_configA

Get the SMTP configuration used for alert emails

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description should disclose more. It implies a read-only operation but does not mention permissions, rate limits, or return behavior. However, for a simple getter with no parameters, the description is minimally adequate.

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

Conciseness5/5

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

Single sentence, concise, front-loaded with 'Get'. No wasted words.

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 and no description of what the configuration includes. The agent might need to know the structure of the returned data to use it effectively.

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

Parameters4/5

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

Schema coverage is 100% with no parameters, so baseline is 4. Description adds no parameter info because there are none.

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 action 'Get' and the resource 'SMTP configuration used for alert emails', which is specific and distinguishes it from sibling tools like update_smtp_test or test_smtp.

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 versus alternatives. The description only states what it does, not when to use it or when not to.

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

lattice_get_sso_configA

Get the Forta SSO configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description only says 'Get', implying read-only, but doesn't disclose response format, authentication needs, or any potential side effects. For a tool with no annotations, the description lacks sufficient behavioral detail.

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

Conciseness5/5

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

One short sentence with no fluff. Perfectly concise 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 params, no output schema, and no complexity, the description is functionally complete but very minimal. It doesn't explain what the SSO configuration contains or how it relates to other tools, leading to a moderate 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?

Tool has no parameters and schema coverage is 100%. Baseline for 0 params is 4; description adds no extra param 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 verb 'Get' and resource 'Forta SSO configuration'. It is specific and distinguishes from sibling update tool.

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 like lattice_update_sso_config. No context about prerequisites or typical scenarios.

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

lattice_get_stackA

Get full stack details including compose YAML and env vars

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

A4/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 what the tool returns (compose YAML and env vars) and implies a read operation. However, it does not mention permissions, side effects, or whether the data is cached, which would be helpful for an 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 a single concise sentence that immediately conveys the tool's purpose. It is front-loaded with the key details and contains 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?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers what the tool does and returns. However, it could be slightly more complete by mentioning the format or structure of the returned data, but this is minor.

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?

The schema has 100% coverage for the single parameter 'id', described as 'Stack ID'. The description adds no extra meaning beyond the schema, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states 'Get full stack details including compose YAML and env vars', which specifies the verb ('Get'), resource ('stack'), and scope of data returned. The tool name matches, and it is distinct from siblings like get_stack_containers.

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 retrieving stack details but does not explicitly state when to use this tool versus alternatives (e.g., get_stack_containers for containers). No when-not-to-use or prerequisite information is provided.

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

lattice_get_stack_containersA

List the containers belonging to one stack

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

A3.5/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 indicates a read operation but does not disclose any behavioral traits such as pagination, authorization needs, rate limits, or output format. The description is minimal but not misleading.

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 a single, concise sentence with no wasted words. It is effectively front-loaded with the core action.

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?

For a simple list tool with one parameter and no output schema, the description is adequate but could be more complete. It does not specify the return format or any limitations (e.g., pagination, filtering).

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?

The sole parameter 'id' is described in the schema as 'Stack ID' with 100% coverage. The tool description adds no additional meaning beyond what the schema provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the purpose: 'List the containers belonging to one stack'. The verb 'List' and resource 'containers' are specific, and the scope 'belonging to one stack' distinguishes it from sibling tools like lattice_list_containers (which likely lists all containers) and lattice_get_container (which gets a specific container).

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 is provided on when to use this tool versus alternatives. The description does not mention use cases, prerequisites, or exclusions. Sibling tools exist (e.g., lattice_list_containers, lattice_get_container) but the description does not help the agent decide between them.

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

lattice_get_versionA

Get the deployed lattice-api version string. Use to check deploy drift against GitHub tags/commits (e.g. for /howfarbehind).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 correctly indicates a read operation but does not explicitly state it is readonly or mention authentication/rate limits. The behavioral implications are minimal, so a 3 is appropriate.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action and resource, followed by a usage example. No wasted words.

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?

For a simple tool with no parameters and no output schema, the description is mostly complete but lacks detail on return format or error conditions. It could briefly mention what the version string looks like.

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 zero parameters (100% schema coverage), so the description does not need to elaborate on parameters. Baseline 4 applies.

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

Purpose5/5

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

The description clearly states the tool gets the deployed lattice-api version string and provides a specific use case (check deploy drift against GitHub tags/commits), which differentiates it from siblings like lattice_get_versions.

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 when to use the tool (to check deploy drift), but does not mention when not to use it or provide alternatives. However, for a simple get-version tool, this is adequate.

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

lattice_get_versionsA

Get runner versions across workers and which are outdated. Use before lattice_upgrade_worker to see what actually needs upgrading

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only states what the tool returns (versions and outdated status) but lacks details on side effects, authorization needs, rate limits, or safety. As a read operation, it likely has no destructive effects, but this is not stated. Insufficient for a 0-annotation 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 sentences, each serving a purpose. The first states the action and scope, the second provides usage context. No redundancy, front-loaded with key 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 zero parameters and no output schema, the description is adequate for a simple read tool. However, it doesn't describe the output structure (e.g., format of outdated indication). Agents may need more detail on what 'outdated' means or return fields. Lacks completeness for a fully autonomous 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?

Tool has no parameters, so schema coverage is 100%. The description adds value by clarifying that the output includes outdated status. Baseline 4 is appropriate as no parameter documentation 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 it retrieves runner versions across workers and identifies outdated ones. The verb 'get' and resource 'runner versions' are specific. It distinguishes from sibling 'lattice_upgrade_worker' by being a pre-check 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?

Explicitly instructs to use before 'lattice_upgrade_worker' to determine upgrade necessity. This provides strong usage context. However, it does not mention when to avoid using it or alternative conditions, hence a 4.

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

lattice_get_workerB

Get detailed worker info including metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided and description omits behavioral traits (e.g., read-only, permissions, rate limits). Despite being a 'get' operation, the description does not confirm it is non-destructive or safe.

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?

Extremely concise, one phrase without fluff. However, it lacks structure such as separation of purpose and details.

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?

For a simple get tool with one parameter and no output schema, the description is minimally adequate. But it does not explain what 'detailed worker info' includes or how it differs from metrics tools.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter 'id' described as 'Worker ID'. The description adds no additional meaning beyond the schema, meeting the baseline.

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

Purpose5/5

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

States 'Get detailed worker info including metrics', clearly indicating the action (get) and resource (worker info). Distinguishes from sibling tools like lattice_list_workers (list) and lattice_get_worker_metrics (metrics only).

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 versus alternatives like lattice_list_workers or lattice_get_worker_metrics. Lacks context for selection.

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

lattice_get_worker_container_statsB

Get live per-container resource stats from one worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. 'Get' suggests a read operation, and 'live' implies real-time data, but no details on latency, data freshness, or behavior when the worker is unreachable. The description lacks disclosure of any observational or safety 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?

A single sentence of 9 words, no filler or repetition. Every word is functional, making it highly efficient for an AI agent to process.

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 a single parameter and no output schema. The description does not compensate for the missing output schema by hinting at the return format or types of stats (e.g., CPU, memory). An agent lacks sufficient context to interpret the tool's response, reducing completeness.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Worker ID'. The description adds 'from one worker' but does not provide additional meaning beyond the schema. Per guidelines, baseline 3 is appropriate when schema coverage is high.

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 verb 'Get' and the resource 'live per-container resource stats from one worker'. It distinguishes from sibling tools like lattice_get_worker (worker info) and lattice_get_worker_metrics (aggregate metrics) by specifying per-container scope and 'live' data.

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?

Description implies usage for retrieving container resource stats from a specific worker but provides no explicit guidance on when to use this tool over alternatives such as lattice_get_container_metrics or lattice_get_worker_metrics. No prerequisites or exclusions are mentioned.

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

lattice_get_worker_metricsB

Get recent worker metrics (CPU, memory, disk, network)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
rangeNoTime range (e.g. '1h', '6h', '24h')

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must cover behavioral traits. It only mentions 'recent' metrics but does not disclose if data is real-time, aggregated, or how time range affects results. Lacks details on output format or limitations.

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

Conciseness4/5

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

Single sentence is clear and front-loaded. However, it could be structured to separate purpose, parameters, and usage guidance. Still efficient.

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?

For a simple metrics retrieval tool with no output schema, the description minimally covers what it does. Missing details on return format, pagination, and error handling. Adequate but not comprehensive.

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

Parameters4/5

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

Schema coverage is 100% for the 2 parameters. The description adds value by listing metric categories (CPU, memory, etc.), which provides context beyond the 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?

The description clearly states the tool retrieves worker metrics, specifying the types (CPU, memory, disk, network). It distinguishes from sibling tools like lattice_get_fleet_metrics and lattice_get_container_metrics.

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 versus other metrics tools (e.g., fleet, container). Does not specify prerequisites or context for selection.

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

lattice_get_worker_port_availabilityA

List host ports already claimed on a worker (by databases and by stack containers) and get a free suggestion. Check this before pinning a database to a specific port

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
portNoCheck one specific port instead of listing all claims

TDQS

A4.5/5.0
Behavior4/5

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

The description states that the tool 'List host ports already claimed' and 'get a free suggestion', which are read-like operations. It does not mention needed permissions or side effects, but given no annotations, the description is sufficiently transparent about the tool's behavior for an agent to understand it is a safe, information-gathering call.

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 sentences: the first states what the tool does, the second provides usage guidance. Every word is meaningful, and no space is wasted. It is front-loaded with the core action.

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

Completeness5/5

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

Given the tool has no output schema, the description effectively communicates what the agent can expect: a list of claimed ports and a free port suggestion. This is sufficient for the agent to use the tool correctly in workflows like port allocation for databases. The tool's purpose is distinct among the many sibling tools, and the description covers the necessary context.

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 already covers both parameters with descriptions (id: 'Worker ID', port: 'Check one specific port instead of listing all claims'). The description adds value by explaining the overall purpose and that the tool returns a suggestion, which goes beyond the schema. This justifies a score above the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description uses specific verbs ('List', 'get') and clearly identifies the resource ('host ports already claimed on a worker') and the action's beneficiaries ('databases and stack containers'). The phrase 'Check this before pinning a database to a specific port' distinguishes this tool's purpose from sibling tools like those for database or container 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 clear context for when to use the tool ('before pinning a database to a specific port'). While it does not explicitly list alternatives or say when not to use it, the specific use case is well communicated.

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

lattice_healthA

Check API health and database connectivity

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 full burden. It states the tool checks health and connectivity, which implies a read operation, but does not disclose behavioral traits like side effects, authentication needs, or response format. The description is too brief to adequately inform the agent of the tool's 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 extremely concise: a single sentence with no fluff. Every word is essential. It is well-structured and front-loaded with the key purpose.

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 zero parameters and no output schema, the description is adequate for a simple health check tool. However, it lacks details on return values, error handling, or performance implications. For a tool with no complexity, this level of completeness is minimum viable.

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 schema coverage is 100%. The description adds no parameter information, but none is needed. Baseline 4 is appropriate as the schema already fully documents parameters.

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

Purpose5/5

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

The description clearly states the tool checks 'API health and database connectivity', which is a specific verb and resource. It distinguishes from siblings like lattice_get_database_credentials or lattice_get_database_connection, which focus on credentials or connections, not health.

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 an implied usage context (health checks) but lacks explicit guidance on when to use this tool vs alternatives, such as monitoring intervals or prerequisite conditions. No exclusions are mentioned.

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

lattice_import_composeB

Create a new stack from a docker-compose YAML document

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStack name
worker_idNoWorker to pin the stack to
descriptionNoDescription
compose_yamlYesFull compose YAML document
deployment_strategyNoDeployment strategy

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavior. It indicates a write operation but does not mention side effects (e.g., overwriting existing stacks), permission requirements, or idempotency. The agent is left guessing about common 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?

Single sentence, no redundant information. Concise and to the point.

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?

With 5 parameters, no output schema, and no annotations, the description is too sparse. It lacks context about validation, error scenarios, or post-creation behavior. The tool needs more behavioral detail to be fully useful to an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add any extra meaning beyond the schema. Parameters like worker_id and deployment_strategy are described in schema but not elaborated here.

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 verb 'create', resource 'a new stack', and method 'from a docker-compose YAML document'. This distinguishes it from siblings like lattice_create_stack, which likely creates a stack through other means.

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 versus alternatives like lattice_create_stack. No prerequisites, exclusions, or context for when this is appropriate. The description only states what it does, not when to use it.

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

lattice_import_stack_exportA

Recreate a stack from a document produced by lattice_export_stack

ParametersJSON Schema
NameRequiredDescriptionDefault
stackYesStack object from the exported document
versionYesExport format version, from the exported document
containersYesContainer array from the exported document

TDQS

A3.9/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 cover behavioral aspects. It only says 'recreate', without detailing side effects, permissions, idempotency, or whether it is destructive. This is insufficient for a state-modifying 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?

The description is a single, concise sentence that conveys the essential purpose without any unnecessary words or details.

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?

The description covers the basic purpose but lacks behavioral context, especially given the absence of annotations and output schema. More details on prerequisites, side effects, and results are needed for full 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?

Schema coverage is 100% with descriptions. The description adds context by specifying that the values come 'from the exported document', which clarifies the tool's input expectations and provides value 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 action 'recreate a stack' and the source 'document produced by lattice_export_stack'. It is specific and distinguishes from related tools like lattice_create_stack and lattice_import_compose.

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 the use case (when you have an export document) and indirectly guides against using lattice_create_stack or lattice_import_compose. However, it does not explicitly state when not to use or list alternatives.

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

lattice_kill_containerC

Force kill a container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.8/5.0
Behavior2/5

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

The description says 'Force kill' implying abrupt termination without cleanup, but does not disclose specific consequences (e.g., data loss, connection drops) or required permissions. Without annotations, this leaves significant behavioral ambiguity for a destructive action.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks front-loaded critical information. It does not waste words but is under-specified, missing context that would make it more helpful.

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?

For a destructive operation with no annotations, output schema, or return value description, the description is insufficient. It omits effects, prerequisites, and outcome details, making it incomplete for informed use.

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

Parameters3/5

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

Schema coverage is 100% and the description adds no extra meaning beyond what the schema already provides for 'id'. Baseline score of 3 applies.

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 action (Force kill) and resource (container). It is specific and distinguishes from stop or remove, though not explicitly differentiated from sibling tools like lattice_stop_container or lattice_force_remove_container.

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 versus alternatives such as stop or force_remove. No prerequisites or exclusions mentioned.

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

lattice_list_all_networksA

List every tracked Docker network across the fleet

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 are provided, so the description alone must disclose behavioral traits. It accurately describes a read-only list operation, but it lacks details about the return format or any side effects. This is adequate for a simple list 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?

The description is a single, concise sentence that conveys the entire purpose without any extraneous words. It is front-loaded and efficient.

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 (zero parameters, no output schema), the description is fairly complete. However, a brief note about what is returned (e.g., list of network IDs or objects) would enhance 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?

There are no parameters, and the schema coverage is 100%. According to the guidelines, 0 parameters sets a baseline of 4. No additional parameter semantics are 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 'List every tracked Docker network across the fleet' clearly specifies the verb (List), the resource (tracked Docker network), and the scope (across the fleet). This distinguishes it from sibling tools like lattice_list_worker_networks, which focus on a specific worker's networks.

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 clear context for when to use the tool (to get all fleet-wide networks), but it does not explicitly state alternatives or when not to use it. The sibling lattice_list_worker_networks suggests a more scoped option, but no comparative guidance is given.

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

lattice_list_api_tokensA

List all API tokens

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/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 context. It only states the action without disclosing auth requirements, read-only nature, or sensitivity of returned data.

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 a single short sentence with no extraneous information, front-loading the purpose effectively.

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?

While the tool is simple with no parameters or output schema, the description lacks details about response format, pagination, or security implications. It is adequate but could be more informative.

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 no parameters, so baseline score is 4. The description does not need to add parameter info.

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 'List all API tokens' clearly states the action (list) and the resource (API tokens), and distinguishes from sibling tools like create and delete.

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 tool vs alternatives. The purpose is implied, but the description does not mention when not to use it or provide context relative to siblings.

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

lattice_list_backup_destinationsA

List configured backup destinations that database snapshots can be shipped to

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description must fully convey behavior. It indicates a read operation ('list') but does not disclose authentication requirements, rate limits, or response format. For a simple list tool, this is minimally adequate but lacks transparency about what the client can expect.

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 a single, front-loaded sentence with zero fluff. Every word is necessary and clear.

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?

The tool has no output schema and no annotations, so the description carries full contextual weight. While it states the basic purpose, it could be improved by noting that the result is a list of destination objects or linking to related tools. As is, it is adequate but leaves room for the agent to infer 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?

There are no parameters, so the schema is fully covered. The description correctly implies no input needed. Since there is nothing to explain, a score of 4 is appropriate (baseline for zero-parameter tools).

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 ('List') and resource ('configured backup destinations that database snapshots can be shipped to'). It distinguishes this tool from siblings like lattice_get_backup_destination (single destination) and create/update/delete/test variants.

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 tool vs alternatives. The available sibling tools (e.g., lattice_get_backup_destination) imply different use cases, but the description does not mention them or provide exclusion criteria.

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

lattice_list_containersA

List containers with status, image, ports, health. Filter by stack or status

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by container name
statusNoFilter by status (running, stopped, pending, paused)
stack_idNoFilter by stack ID
worker_idNoFilter by worker ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only states what the tool lists, without mentioning read-only nature, limitations, pagination, or any side effects. Minimal 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?

Single sentence that clearly front-loads the main action and result fields, followed by filtering options. No unnecessary words.

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, the description partially describes return fields but lacks details on response structure (e.g., array format). Adequate for a simple list tool but not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds 'Filter by stack or status' which summarizes two parameters but provides no additional semantics like format or examples.

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 action (list), resource (containers), and returned fields (status, image, ports, health). It also mentions filtering capabilities, distinguishing it from siblings like lattice_get_container (singular) and other management 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?

Description implies use for listing containers with filters, but does not explicitly compare with alternatives like lattice_get_stack_containers or explain when not to use. No exclusion or prerequisite guidance.

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

lattice_list_database_instancesA

List managed database instances with engine, version, status, worker and health. Filter by worker, engine or status

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax instances to return
engineNoFilter by engine
offsetNoPagination offset
statusNoFilter by lifecycle status
worker_idNoFilter by worker ID

TDQS

A3.8/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 of behavioral disclosure. It states the tool lists instances and returns fields, but does not confirm it is read-only, mention any side effects, or describe pagination/rate limits. For a list operation, the risk is low, but the description lacks explicit safety guarantees that annotations would ideally provide.

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 concise sentences, front-loaded with the main purpose and followed by filter options. No unnecessary words, and the structure is clear and easy to parse.

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

Completeness4/5

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

Given it is a list tool with good schema coverage and no output schema, the description provides a solid overview of returned fields and filter options. It omits details like pagination (offset/limit) and ordering, but these are covered in the schema. Overall, it is sufficiently complete for the tool's simplicity.

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 100% schema description coverage, the baseline is 3. The description mentions filtering by worker, engine, or status, which maps to parameters worker_id, engine, and status, but adds no additional meaning beyond what the schema already provides (e.g., format, constraints, or examples).

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

Purpose5/5

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

The description explicitly states the action 'List' and the resource 'managed database instances', and enumerates the key fields returned (engine, version, status, worker, health). It also specifies filter options, making the tool's purpose distinct from sibling tools like get_database_instance which retrieves a single instance.

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

Usage Guidelines4/5

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

The description provides clear context on how to use the tool (listing with filters by worker, engine, or status). However, it does not explicitly exclude scenarios or compare to alternative tools like get_database_instance for single-instance retrieval, leaving some ambiguity about when to choose this tool.

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

lattice_list_database_snapshotsA

List snapshots for a database instance, with size and creation time. Check this before deleting or restoring an instance

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

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 that the tool returns size and creation time but does not mention pagination, ordering, or permissions. For a simple read-only list, this is adequate but not detailed.

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 with no wasted words. The verb 'List' leads the description, and the second sentence adds valuable usage context.

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 list tool with one parameter and no output schema, the description is nearly complete: it states what the tool does, what it returns, and when to use it. It lacks mention of pagination, but that may not be necessary for snapshots.

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

Parameters3/5

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

Schema coverage is 100% for the one parameter 'id', which is described as 'Database instance ID'. The description does not add additional meaning beyond the schema; it simply restates the parameter's role in 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 tool lists snapshots for a database instance, specifying that it returns size and creation time. It distinguishes from sibling snapshot tools (lattice_create_database_snapshot, lattice_restore_database_snapshot, lattice_delete_database_snapshot) by focusing on listing.

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

Usage Guidelines5/5

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

The description explicitly advises to check this before deleting or restoring an instance, giving clear context for when to use the tool. This distinguishes it from sibling tools that perform actions on snapshots.

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

lattice_list_deploymentsB

List deployments with status, strategy, timing. Filter by stack or status

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of deployments (default 50)
statusNoFilter by status (pending, deploying, deployed, failed, rolled_back)
stack_idNoFilter by stack ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the burden of disclosure. It states it lists deployments but does not mention that it is read-only, whether pagination is supported (only a hint via limit parameter not mentioned in description), or any rate limits or permissions needed.

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 a single sentence that is clear and efficient. It could be slightly more specific about what 'with' means, but overall it is well-structured and concise.

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 no output schema, the description should clarify what the response contains. It mentions 'deployments with status, strategy, timing' but does not indicate if this is a list or if there are other fields. It is incomplete for a list tool without output schema.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is already described in the input schema. The description only reinforces the filter functionality without adding new semantic meaning beyond what the schema provides. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states it lists deployments with status, strategy, timing and allows filtering by stack or status. This distinguishes it from sibling tools like lattice_get_deployment which retrieves a single deployment or lattice_deploy_stack which creates a deployment.

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?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention that for single deployment details one should use lattice_get_deployment, nor does it describe any preconditions or context for use.

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

lattice_list_deploy_tokensA

List a stack's deploy tokens — the credentials CI uses to trigger deployments. Token values are never returned; last_used_at reveals whether CI is actually reaching Lattice

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that token values are never returned, a key behavioral constraint. For a list tool, this is adequate. Could mention pagination or authentication, but not critical.

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: first states purpose, second adds behavioral detail. 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?

Adequately covers purpose and key return field (last_used_at). Lacks mention of pagination or sorting, but for a simple list tool, completeness is high.

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 has 100% coverage with description 'Stack ID' for the single required parameter. Description adds no additional meaning, so baseline 3 applies.

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

Purpose5/5

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

Clearly specifies the verb 'list', resource 'deploy tokens', and context 'of a stack'. Also explains what deploy tokens are, distinguishing it from sibling create/delete tools.

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 context that token values are never returned and that last_used_at checks CI connectivity, implying when to use. Does not explicitly compare to create/delete alternatives.

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

lattice_list_env_varsA

List global environment variables available for interpolation into stack and container configs as ${NAME}. Values marked is_secret are masked to their first two characters by this server — the API itself only masks them for non-admin callers, and this MCP authenticates as an admin

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are provided, so the description fully bears the burden. It explicitly discloses that secret values are masked to first two characters, explains the reason (API masks for non-admin, MCP authenticates as admin), and implies it's a safe 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.

Conciseness4/5

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

The description is a single sentence that front-loads the main purpose. It is efficient but slightly dense; splitting into two sentences could improve readability without losing content.

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?

The description covers the main functionality and the masking behavior, but it does not mention the output format (e.g., array of objects with fields like name, value, is_secret) or any pagination/limits. Given no output schema, more detail would be beneficial.

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 correctly does not add parameter info as none 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?

The description specifically states it lists global environment variables for interpolation, clearly distinguishing it from mutation tools (create/update/delete env vars) and other list tools. The verb and resource are explicit.

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 identifies the tool as a list operation for global env vars. While it does not explicitly state when not to use it vs alternatives, the context of being a read-only list is sufficient given no parameters.

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

lattice_list_registriesA

List configured container registries

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 only says 'list', which implies a non-destructive read. But it doesn't disclose what 'configured' means or the response format. Minimal but not misleading.

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 a single, front-loaded sentence with no unnecessary words. It efficiently communicates the tool's purpose.

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?

For a simple list tool with no parameters, the description is functional but lacks context about the return value or scope. It could hint at what information is listed (e.g., names, URLs) to be more 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?

No parameters exist, so the description cannot add parameter-level detail. Schema coverage is 100% by default, meeting the baseline for parameter semantics.

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

Purpose5/5

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

The description clearly states the action 'List' and the resource 'configured container registries', which distinguishes it from sibling tools like create, update, delete, and test registries. It is specific and unambiguous.

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

Usage 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 versus alternatives. There is no mention of its read-only nature or any prerequisites. Given no parameters, the lack of context is a missed opportunity.

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

lattice_list_registry_repositoriesA

List repositories available in a registry — what images exist to deploy

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRegistry ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description alone must disclose behavior. It states 'List repositories', which implies a read-only operation, but it does not mention side effects, error conditions (e.g., invalid registry ID), or whether the list is paginated. This is minimally 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?

The description is a single, well-structured sentence that immediately conveys the tool's purpose. It contains no filler, no repetition, and efficiently communicates the key action and outcome.

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 parameter, no output schema), the description provides a sufficient overview. However, it could be slightly more complete by mentioning that the result lists repository names or includes details like image tags. Nonetheless, it adequately covers the core functionality.

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?

There is one parameter (id) with schema description 'Registry ID'. The tool description adds no extra meaning beyond the schema. Schema coverage is 100%, so the schema already documents the parameter; the description does not elaborate on its format or role, maintaining a baseline score of 3.

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

Purpose5/5

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

The description clearly states 'List repositories available in a registry — what images exist to deploy', using a specific verb ('List') and resource ('repositories in a registry'). It distinguishes from sibling tools like lattice_list_registries (lists registries) and lattice_list_registry_tags (lists tags), 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 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 tool versus alternatives. Given its straightforward nature, usage is implied (list repositories of a registry), but there is no mention of exclusions or conditions, such as requiring a valid registry ID or noting that the registry must exist.

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

lattice_list_registry_tagsA

List the tags published for one repository. Use this to answer 'what version can I deploy' or 'is the image my CI just built actually in the registry'

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRegistry ID
repoYesRepository name, e.g. 'openbucket-api'

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, but description accurately discloses it's a read operation listing tags. It lacks details on error handling or pagination, but for a simple list tool this is acceptable.

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

Conciseness5/5

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

Two concise sentences, front-loaded with action and purpose, zero waste.

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

Completeness5/5

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

Given the tool's simplicity, high schema coverage, and no output schema required, the description is complete enough for an agent to understand and use correctly.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds context like example repo name but doesn't add significant meaning beyond what the schema already provides.

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

Purpose5/5

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

Description clearly specifies verb 'list', resource 'tags for one repository', and provides example use cases ('what version can I deploy'), distinguishing it from related sibling tools.

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?

Description explicitly states when to use it (to answer specific questions). While it doesn't discuss when not to use or alternatives, the context is clear and adequate.

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

lattice_list_stacksB

List all stacks with status, worker assignment, and deployment strategy

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (deployed, deploying, failed, error)
worker_idNoFilter by worker ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It mentions listing all stacks but does not address pagination, sorting, rate limits, authentication requirements, or read-only nature. The filters are implied via parameters but not explicitly discussed.

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 a single, well-structured sentence of 8 words. It is front-loaded with the verb and resource, contains no fluff, and efficiently communicates the core function.

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?

For a simple list operation with no output schema, the description covers the basic purpose and output fields. However, it lacks details on pagination, result format, or whether the list is exhaustive. Given the absence of annotations and output schema, more completeness would be helpful.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it merely restates the action and output fields. It does not clarify parameter behavior like whether filters are exact or fuzzy.

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 ('List') and resource ('all stacks'), and specifies the output includes status, worker assignment, and deployment strategy. It distinguishes from sibling tools as the only stack listing tool.

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 is provided on when to use this tool versus alternatives like lattice_get_stack for a specific stack or other list tools. The description lacks context on appropriate usage scenarios.

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

lattice_list_templatesB

List saved stack templates

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 convey behavioral traits. It states it is a list operation (read-only), but lacks details on pagination, ordering, or what information is returned (e.g., names, IDs). This leaves uncertainty about the tool's 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 a single, concise sentence with no unnecessary words. It is front-loaded and efficient, using minimal text to convey the core purpose.

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 simplicity of the tool (no parameters, no output schema), the description is mostly complete. However, the lack of an output schema means the description should indicate what the list returns (e.g., template names or objects). It does not fully meet this need, leaving a minor 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?

The tool has zero parameters, and the input schema is empty with 100% coverage. The description does not need to add parameter information, and the baseline score for zero parameters is 4. The description is adequate for this dimension.

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 states 'List saved stack templates', which clearly indicates the action (list) and resource (stack templates). It is specific enough to distinguish from sibling tools like lattice_list_stacks, though it could be more precise by noting it returns all templates.

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 versus alternatives such as lattice_save_stack_as_template, lattice_create_template, or lattice_delete_template. The description does not mention any prerequisites or context for usage.

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

lattice_list_usersA

List Lattice users with roles and status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 disclose behavioral traits. It only states the action and output fields, but does not mention authorization needs, whether it is read-only, pagination, or rate limits. This leaves the agent without important safety context.

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 a single, concise sentence that directly states the tool's purpose. There is no wasted information, and it is front-loaded with the key action and resource.

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 list tool with no parameters and no output schema, the description is mostly complete. It could explicitly state that it returns 'all' users to be fully clear, but as is, it adequately conveys the core functionality.

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 no parameters, and the schema coverage is 100%. The description does not need to add parameter details. It is appropriately simple 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 the verb 'List' and the resource 'Lattice users', and specifies the returned fields 'roles and status'. It effectively distinguishes from sibling tools like create/update/delete users and other list 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?

The description provides no explicit guidance on when to use this tool vs alternatives (e.g., lattice_get_self for current user). Usage is implied but not clarified, and no exclusions are mentioned.

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

lattice_list_webhooksA

List outbound webhooks that fire on fleet events

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic action; missing details on return format, pagination, authentication, or potential side effects. It does not contradict any annotation.

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

Conciseness5/5

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

Single sentence of 7 words, front-loaded with the verb, no wasted words.

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?

Adequate for a simple list tool with no parameters and no output schema, but could mention if it lists all webhooks or any sorting/filtering 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?

No parameters exist, so schema coverage is 100%. The description adds no param info, which is acceptable. Baseline for 0 params is 4.

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 'outbound webhooks that fire on fleet events'. It distinguishes this tool from sibling webhook CRUD tools (create, update, delete) by specifying the list action.

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 a listing function but does not provide explicit when-to-use or when-not-to-use guidance. Given no parameters, it is a simple list-all, but alternatives are not discussed.

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

lattice_list_worker_networksB

List Docker networks on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only says 'list' (implied read-only) but lacks details on side effects, permissions, or what happens if the worker ID is invalid.

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?

A single sentence that is front-loaded and contains no unnecessary words. It efficiently conveys the core action and resource.

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?

For a simple list tool with one parameter and no output schema, the description is minimally adequate. However, it omits details about return format, pagination, or error scenarios, which would be helpful.

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

Parameters3/5

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

Schema coverage is 100% with the description 'Worker ID' for the 'id' parameter. The tool description adds no additional meaning beyond the schema, meeting the baseline of 3.

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

Purpose5/5

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

The description uses a specific verb 'List' and resource 'Docker networks' with scope 'on a worker', clearly distinguishing it from siblings like 'lattice_list_all_networks' (all workers) and 'lattice_create_worker_network'.

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 versus alternatives (e.g., 'lattice_list_all_networks'). The description does not mention when-not-to-use or provide context for selection among similar tools.

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

lattice_list_workersA

List all workers with status, IP, Docker version, runner version, last heartbeat

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by worker status

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It does not mention that the operation is read-only, whether any side effects occur, auth requirements, or pagination behavior. For a list operation, basic safety traits are missing.

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?

Single sentence, 13 words, directly states purpose and key fields. No redundancy. Front-loaded and efficient.

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?

While the description covers the basic purpose, it lacks details on response format, pagination, ordering, or any constraints. Given no output schema and no annotations, the description could be more complete to aid agent understanding.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter (status with enum). The description merely mentions 'status' without adding extra semantics beyond what the schema provides. Baseline 3 is appropriate.

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

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 workers and specifies the fields included (status, IP, Docker version, runner version, last heartbeat). It distinguishes from sibling tools like lattice_get_worker and other list 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 implies usage for listing workers with an optional status filter. While it does not explicitly mention when not to use or alternative tools, the context of sibling tools makes the purpose clear. A slight improvement would be to specify that this is for all workers without user/workspace filtering.

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

lattice_list_worker_tokensA

List a worker's registration tokens. Values are never returned

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

A3.8/5.0
Behavior4/5

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

Despite no annotations, the description discloses a critical behavioral trait: 'Values are never returned.' This informs the agent that the actual token values are inaccessible, which is essential for decision-making. It could be improved by mentioning other behaviors like idempotency, but the existing disclosure adds significant value.

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 a single, front-loaded sentence that efficiently conveys the purpose and a key behavioral note. No wasted words; every part is informative.

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 and lack of output schema, the description adequately covers listing worker tokens and the non-return of values. However, it is missing explicit return type details (e.g., what fields are returned for each token), which limits completeness for an agent.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'id' (Worker ID). The description does not add additional meaning or constraints beyond what the schema already provides, so the baseline of 3 is appropriate.

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

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 a worker's registration tokens, specifying the resource (worker tokens) and the action (list). It also distinguishes itself from sibling tools like lattice_list_api_tokens by focusing on worker registration tokens.

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?

The description provides no guidance on when to use this tool versus alternatives or what prerequisites are needed (e.g., worker existence). It lacks any when-to-use or when-not-to-use information.

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

lattice_list_worker_volumesA

List Docker volumes on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

A3.8/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 accurately describes a read operation (list), but does not disclose any additional behavioral traits such as whether the worker must be running, or any performance implications.

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: a single phrase of six words. Every word is meaningful and front-loaded. No filler or redundant 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?

For a simple list tool with one parameter and no output schema, the description is sufficient. It clearly communicates the action, resource, and required parameter. However, it could mention that the output is a list of volume details.

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

Parameters3/5

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

Schema coverage is 100% with parameter 'id' having a description 'Worker ID'. The description adds no additional semantics 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?

Description clearly states 'List Docker volumes on a worker', specifying the verb 'list' and resource 'Docker volumes on a worker'. It distinguishes from sibling tools like lattice_create_worker_volume or lattice_delete_worker_volume.

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 when-to-use or when-not-to-use guidance is provided. The description implies usage for viewing Docker volumes, but does not mention alternatives or contexts where this tool should be avoided.

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

lattice_open_database_consoleA

Authorise an interactive console session against a running database and return the worker, container and SQL client command to run. The session itself runs over the admin WebSocket, so this returns the authorisation, not a live shell

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID

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 carries full burden. It explains that the session runs over admin WebSocket and that this returns authorization, not a live shell. But it does not disclose potential side effects, permission needs, or error states.

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 efficient sentences: the first states purpose and output, the second clarifies a critical nuance. No wasted words, well 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?

Adequate given simple single-parameter schema. But lacks details on error cases, required permissions, and exact output format, which would help the agent use it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning to the 'id' parameter beyond the schema's 'Database instance ID'.

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 ('Authorise an interactive console session'), the resource ('running database'), and what is returned ('worker, container and SQL client command'). It also distinguishes the tool from similar ones like lattice_get_database_credentials by noting it returns authorization, not credentials.

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?

Usage is implied: you use this tool to get authorization to run an interactive console. However, no explicit guidance is given on when to use it versus alternatives like lattice_get_database_connection, nor are prerequisites or exclusions mentioned.

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

lattice_overviewA

Get fleet overview: worker counts, stack counts, container counts, failed stacks, recent deployments, fleet CPU/memory averages

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 are provided, so the description carries the burden. It discloses that the tool returns counts and averages, but it does not mention whether it is read-only, rate limits, or any other behavioral traits. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently lists the contents 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?

The tool is simple with no parameters or output schema. The description lists the main return fields, which is sufficient for a fleet overview tool. It does not explain format or pagination, but given the simplicity, this 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 tool has no parameters, so the baseline is 4. The description adds meaning by enumerating the specific metrics in the overview, which complements the lack of 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 uses a specific verb 'Get' and resource 'fleet overview', and lists concrete metrics (worker counts, stack counts, etc.). It clearly distinguishes from sibling tools like lattice_get_fleet_metrics (which likely focuses on metrics only) and lattice_list_* tools (which list individual items).

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 vs. alternatives. Context from sibling tools suggests this is for a high-level overview, but no when-not or alternative tool guidance is provided.

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

lattice_pause_containerC

Pause a running container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states the action without disclosing behavioral traits such as whether the operation is reversible, what state the container enters, or any 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.

Conciseness3/5

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

The description is extremely concise (two words), but it lacks structure. While efficient, it is too minimal to be highly effective.

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 no annotations, no output schema, and a simple parameter, the description is minimally complete. However, it does not explain return values, error conditions, or the resulting container state.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Container ID'. The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

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 action and resource: 'Pause a running container'. This is specific, but it does not differentiate from sibling tools like 'stop_container' or 'kill_container'.

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 usage guidelines provided. There is no indication of when to use this tool versus alternatives like 'stop_container' or 'unpause_container'.

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

lattice_reboot_workerC

Reboot a worker machine

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

C2.9/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 disclose behavioral traits. It only says 'Reboot', which implies a restart but fails to clarify whether it's graceful, if it disrupts running containers, or what authorization is needed. Significant behavioral ambiguity remains.

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 at only four words, with no unnecessary information. It is front-loaded and efficient for an AI agent to parse quickly.

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?

For a potentially disruptive action like rebooting a worker, the description lacks essential context: what happens after reboot, whether it affects other resources, or how to verify success. Despite low complexity (one param, no output schema), the tool's nature demands more detail.

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?

The input schema covers 100% of parameters, and the schema description for parameter 'id' ('Worker ID') is clear. The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly states the action (reboot) and resource (worker machine). It effectively distinguishes from sibling tools like lattice_upgrade_worker, lattice_stop_all_worker, and lattice_start_all_worker, which have different purposes. However, it does not specify the scope or impact of rebooting.

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?

The description provides no guidance on when to use this tool versus alternatives such as upgrade_worker or stop/start_all_worker. There is no mention of prerequisites, context, or exclusion criteria.

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

lattice_recreate_containerB

Recreate a container (remove and create fresh)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

B3.1/5.0
Behavior2/5

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

The description only states 'remove and create fresh' without detailing behavioral traits. No annotations exist, so the description must disclose potential side effects (e.g., data loss), error states, or dependencies. It fails to warn that this is a destructive operation that may permanently delete the container's state.

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 minimal (one short sentence) and front-loaded with the core purpose. It wastes no words, but additional context could be added without sacrificing conciseness.

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?

For a destructive operation with no output schema and no annotations, the description should provide more context about return values, error handling, or post-conditions. It is insufficiently complete for safe and effective usage.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'id', which is described as 'Container ID'. The tool description adds no extra meaning beyond what the schema already provides, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the verb-reource: 'Recreate a container (remove and create fresh)'. This distinguishes it from sibling tools like 'remove_container' and 'create_container' by combining both actions into a single operation.

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 versus alternatives like removing and creating separately. No context about prerequisites, conditions, or scenarios where recreate is preferred over other container lifecycle tools.

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

lattice_refresh_versionsA

Re-poll every worker for its current runner version, refreshing what lattice_get_versions reports

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions re-polling every worker, which is a potentially expensive operation, but does not disclose side effects (e.g., network load, time consumption) or prerequisites. The behavioral impact beyond the annotation gap is poorly communicated.

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 a single sentence that conveys the essential information without any waste. It is well-structured and front-loaded.

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 no output schema and no annotations. The description does not explain what the tool returns (if anything) or how to interpret the results. Given the complexity (an action that refreshes data across workers), the description is incomplete.

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, and schema coverage is 100% (empty schema). The description adds meaning by explaining the tool's effect (refreshing the version data), which compensates for the lack of parameters. Baseline for zero params is 4.

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 ('Re-poll every worker') and the outcome ('refreshing what lattice_get_versions reports'). It distinguishes from the sibling tool lattice_get_versions by implying it triggers a refresh rather than just reading.

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 the context (when you need updated versions) but does not provide explicit guidance on when to use this tool versus alternatives like lattice_get_versions, nor does it state when not to use it.

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

lattice_remove_containerC

Remove a container entirely

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, description must carry full behavioral burden. It only states the action without disclosing consequences (e.g., irreversible? permission needs? impact on associated 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?

Extremely concise single sentence with no fluff. However, brevity comes at cost of necessary detail for a destructive action.

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 the presence of sibling tools with overlapping semantics, description is insufficient. No explanation of 'entirely' or distinction from similar tools like lattice_delete_container or lattice_force_remove_container.

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

Parameters3/5

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

Schema coverage is 100% (parameter 'id' described as 'Container ID'). Description adds no extra meaning beyond schema, baseline score applies.

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

Purpose3/5

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

Description "Remove a container entirely" clearly identifies verb and resource, but does not differentiate from similar siblings like lattice_delete_container or lattice_force_remove_container, leaving ambiguity.

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 versus alternatives (e.g., delete vs force_remove). Lacks context on prerequisites or exclusions.

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

lattice_restart_containerC

Restart a container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.9/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 carry the full burden. It does not disclose whether the restart is graceful, if there is downtime, or what state the container ends up in. For a mutation tool, this is a significant gap.

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 very concise (4 words) with no unnecessary words. However, it could be slightly more informative without losing conciseness.

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 the tool's simplicity (1 param, no output schema), the description is too minimal. It does not explain the behavior of restart (e.g., if it stops then starts), prerequisites, or any side effects. The sibling set includes many container lifecycle tools, making this lack of detail more problematic.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Container ID'. The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose4/5

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

Description clearly states the action (restart) and resource (container). It is straightforward, but does not differentiate from similar tools like stop, start, kill, pause, unpause, remove, recreate, etc.

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 versus siblings like lattice_stop_container, lattice_start_container, lattice_recreate_container, or lattice_restart_stack. There is no explicit when-to-use or when-not-to-use information.

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

lattice_restart_stackC

Restart all containers in a stack

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without detailing side effects, such as whether it is synchronous, causes downtime, or respects dependencies. This is insufficient for a mutation tool.

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

Conciseness4/5

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

The single-sentence description is concise and front-loaded. However, it may be too brief at the expense of necessary detail, earning a 4 rather than a 5 for not balancing conciseness with informativeness.

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 the complexity of restarting all containers in a stack and the lack of an output schema, the description is incomplete. It fails to mention potential delays, return values, or error conditions, which are crucial for the agent to invoke the tool correctly.

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

Parameters3/5

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

The description does not add meaning beyond the input schema, which already describes the 'id' parameter as 'Stack ID' with 100% coverage. The baseline score of 3 is appropriate as the schema sufficiently documents the parameter.

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 verb 'Restart' and the resource 'all containers in a stack', making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'lattice_restart_container' or 'lattice_start_stack' which could be confused.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., restarting individual containers, using start/stop). No prerequisites or limitations are mentioned, leaving the agent to infer context from the name alone.

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

lattice_restore_database_snapshotA

Restore a database instance from one of its snapshots. Overwrites current data irreversibly — take a fresh snapshot first if the present state matters

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
snapshot_idYesSnapshot ID to restore from (see lattice_list_database_snapshots)

TDQS

A4.4/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 clearly discloses the destructive, irreversible nature of the operation. While it doesn't detail other behaviors like synchronicity or downtime, the core behavioral trait is well communicated.

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, no wasted words. First sentence states purpose, second sentence adds essential warning and advice. Highly efficient.

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 two well-documented parameters, the description covers the main purpose and critical risk. It does not explicitly mention the result of a successful restore, but the outcome is implied. Still quite complete for a restoration 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?

Both parameters are fully described in the schema (100% coverage). The description adds value by explaining snapshot_id with a cross-reference to lattice_list_database_snapshots, providing 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?

Description clearly states 'Restore a database instance from one of its snapshots.' This is a specific verb+resource combination, and it distinguishes from sibling tools like lattice_create_database_snapshot and lattice_list_database_snapshots, which have different actions.

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 warns 'Overwrites current data irreversibly' and advises to 'take a fresh snapshot first if the present state matters.' This provides clear when-to-use and precautionary guidance, though it lacks an explicit when-not-to-use statement.

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

lattice_reveal_database_credentialsA

Reveal a database instance's live credentials. Every call is audited and recorded against the instance. Returns the application user by default; set include_root only when root access is genuinely required. Passwords come back masked to their first two characters — enough to confirm which credential is deployed, not enough to use. Set LATTICE_ALLOW_SECRET_VALUES=1 in the MCP server env to get the real values, or read them from the Lattice UI

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
include_rootNoAlso return the root/superuser password (default false)

TDQS

A4.5/5.0
Behavior5/5

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

Without annotations, the description fully discloses behavioral traits: calls are audited, passwords are masked to first two characters by default, and real values require an environment variable LATTICE_ALLOW_SECRET_VALUES=1 or reading from the UI. This exceeds expectations for 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 a single paragraph but efficiently packs multiple pieces of information: what it does, audit behavior, default return, guidance on include_root, and masking details. It is not overly long, though it could be slightly more structured.

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

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 adequately explains what to expect (application user, masked passwords, need for env var to get real values) and mentions audit logging. It could mention error cases like invalid ID, but for a credential-revealing tool, 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?

The input schema already describes both parameters (id and include_root) with 100% coverage. The description adds meaningful context: it clarifies that include_root defaults to false and should only be used when needed, and explains that passwords are masked. This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verb 'Reveal' and resource 'database instance's live credentials'. It distinguishes from sibling tools like lattice_get_database_credentials by highlighting that every call is audited and what credentials are returned (application user by default, root optional).

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 on when to use include_root ('only when root access is genuinely required') and notes that calls are audited. However, it does not directly compare with the similar sibling tool lattice_get_database_credentials, which could help the agent choose between them.

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

lattice_rollback_deploymentC

Rollback a deployment to its previous state

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDeployment ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not mention side effects (e.g., is the rollback destructive? reversible?), permissions needed, or what happens to the deployment state. The short description leaves the agent guessing about the operation's impact.

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 a single, direct sentence that gets to the point. It is efficient and free of verbosity. However, it could be slightly expanded without losing conciseness.

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?

For a destructive operation with no output schema and no annotations, the description is inadequate. It lacks details on return values, error handling, prerequisites, and success criteria. The tool's complexity demands more context.

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

Parameters3/5

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

Schema coverage is 100% with a single 'id' parameter described as 'Deployment ID'. The tool description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance understanding of the parameter's format or constraints.

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 action ('Rollback a deployment') and the resource ('deployment'), distinguishing it from sibling tools like lattice_deploy_stack or lattice_restart_stack. However, it lacks specificity about the 'previous state' (e.g., last successful deployment), which prevents a higher score.

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., after a failed deployment vs. using lattice_deploy_stack for a fresh deploy). The description provides no context about prerequisites or when not to use it.

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

lattice_save_stack_as_templateB

Save an existing stack's configuration as a reusable template

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID to snapshot
nameYesTemplate name
descriptionNoDescription

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but fails to do so. It does not mention side effects (e.g., whether the original stack is modified), required permissions, or behavior on duplicate template names.

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 a single sentence with no fluff, but it could be expanded with essential details without becoming overly verbose.

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 the absence of an output schema and annotations, the description is too brief. It does not explain what is returned or how the template is stored, leaving the agent with insufficient information to understand the tool's full purpose and outcome.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a description. The tool description adds minimal extra meaning beyond 'snapshot' for the id parameter, but overall it does not significantly enhance understanding 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 action ('Save') and the subject ('existing stack's configuration as reusable template'), distinguishing it from sibling tools like create_template (which likely creates from scratch) and deploy_stack (which deploys).

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like create_template or list_templates, nor does it mention prerequisites or suitable contexts.

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

lattice_start_all_workerC

Start all containers on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must bear full burden. It does not disclose whether starting containers is destructive (e.g., restarting running containers), what happens to already running containers, or any permission requirements. Minimal 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?

Extremely concise at one short sentence. While efficient, it could include more structured details without being verbose.

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 the tool has one parameter, no output schema, and no annotations, the description is insufficient. It omits effects (starting vs restarting), response behavior, and prerequisites. Incomplete for safe selection and invocation.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter described as 'Worker ID'. The description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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 'Start all containers on a worker', identifying the verb and resource. However, it does not differentiate from sibling tools like lattice_start_container or lattice_start_stack, which also start containers at different scopes.

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 versus alternatives (e.g., lattice_start_container for individual containers, lattice_start_stack for a whole stack). Lacks context about prerequisites or use cases.

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

lattice_start_containerB

Start a stopped container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It implies a state change but doesn't disclose synchronicity, permissions needed, or effects. Lacks 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?

Highly concise (single sentence), efficient for a simple tool. Could add more value without becoming verbose, but no waste.

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?

Despite low complexity, the description misses prerequisites (container must exist and be stopped), error conditions, and return behavior. Incomplete for safe autonomous use.

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

Parameters3/5

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

Schema coverage is 100% (1 param, 'id' described as 'Container ID'). Description adds no extra parameter information beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Start a stopped container' uses a specific verb 'Start' and resource 'container', clearly distinguishing it from siblings like lattice_stop_container, lattice_restart_container, etc.

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., when container is stopped, or reasons to use start rather than unpause). No prerequisites or context provided.

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

lattice_start_stackB

Start all containers in a stack

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits such as idempotency (what if containers are already running?), blocking behavior, or any destructive aspects.

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?

Single clear sentence, no filler. However, it could be expanded with usage guidance without losing conciseness.

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?

With no annotations and simple tool, the description is minimally adequate but lacks behavioral context. For a mutation tool, more details on effects and prerequisites would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% (one required parameter 'id' described as 'Stack ID'). The description adds no further meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Start' and the resource 'all containers in a stack', distinguishing it from siblings like 'lattice_start_container' (single container) and 'lattice_stop_stack' (stop all containers).

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., starting individual containers). No prerequisites or exclusions mentioned.

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

lattice_stop_all_workerB

Stop all containers on a worker

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like destructiveness, but it only states the basic action without mentioning potential side effects (e.g., data loss, forced stop, or async 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?

Single sentence, no redundancy, directly conveys the action and target.

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?

The tool is simple with one parameter; the description is minimally adequate for basic understanding but lacks details about result, asynchronicity, or safety considerations.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the single parameter. The description adds no extra semantic value beyond what the schema already provides, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Stop all containers') and the resource ('on a worker'), which distinguishes it from siblings like lattice_stop_container and lattice_stop_stack.

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., stopping containers individually), no prerequisites or typical scenarios described.

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

lattice_stop_containerC

Stop a running container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It only mentions 'running container' but fails to explain what 'stop' entails (e.g., container state changes, if it can be restarted, idempotency, or side effects like network disconnect).

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

Conciseness3/5

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

The description is extremely short at five words, but it lacks necessary detail to be maximally useful. While it is concise, it does not fully earn its place because crucial context about the action's meaning is missing.

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 the absence of an output schema and the existence of many sibling container lifecycle tools, the description is incomplete. It does not explain the tool's exact effect (graceful stop vs force kill), return value, or prerequisites for use.

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

Parameters3/5

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

Schema coverage is 100% with a clear description 'Container ID' for the required 'id' parameter. The description adds no additional semantic value beyond the schema, so baseline score of 3 is appropriate.

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 verb 'Stop' and resource 'container' clearly state the action. However, it doesn't distinguish from sibling tools like 'lattice_kill_container' (forceful stop) or 'lattice_pause_container' (temporary pause), which have similar 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?

No guidance on when to use this tool vs alternatives (e.g., kill, pause, restart). No prerequisites or context about the container's state (must be running) is stated beyond the description itself.

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

lattice_stop_stackA

Stop all containers in a stack

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states the action but does not disclose side effects (e.g., containers are stopped but stack persists), prerequisites (e.g., stack must be running), or potential destructive impact. This is minimal for a stop 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?

A single, front-loaded sentence that directly conveys the tool's purpose with zero wasted words. Perfect conciseness.

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?

With one parameter, no output schema, and no annotations, the description is brief but covers the core action. However, it lacks contextual completeness regarding behavior and prerequisites, leaving gaps for an agent to infer.

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

Parameters3/5

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

Schema coverage is 100% (one parameter 'id' with description 'Stack ID'). The description adds no additional meaning beyond what the schema provides, so baseline 3 applies.

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

Purpose5/5

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

The description 'Stop all containers in a stack' clearly states the action (stop) and the resource (all containers in a stack). It distinguishes from sibling tools like lattice_stop_container (single container) and lattice_start_stack (start stack).

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 like lattice_stop_container or lattice_restart_stack. The usage context is implied by the name and sibling tools, but no formal guidance is provided.

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

lattice_sync_stack_composeB

Reconcile a stack's container records against its stored compose YAML, reporting which containers changed and why

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID

TDQS

B3.2/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 disclose behavioral traits. The term 'reconcile' is ambiguous—it may imply mutating container records to match the compose YAML or merely reporting differences. The description does not clarify if this tool performs writes or is read-only, nor does it mention side effects, authorization needs, or error conditions.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the tool's purpose. It is front-loaded and contains no unnecessary words. A slightly higher score would require even more compactness or additional structure, but it is already concise.

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?

With no output schema, the description should provide hints about the return format. It mentions 'reporting which containers changed and why', which gives some expectation, but it is incomplete regarding whether the tool mutates state or is a dry-run. For a reconciliation tool, more detail on behavior is needed.

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

Parameters3/5

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

Schema coverage is 100%, with the 'id' parameter described as 'Stack ID'. The tool description adds no additional meaning beyond the schema, meeting the baseline for high 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 ('reconcile') and the resources ('stack's container records against its stored compose YAML'), and mentions the output ('reporting which containers changed and why'). This distinguishes it from sibling tools like lattice_update_stack_compose (which modifies compose) and lattice_get_stack_containers (which lists containers without reconciling).

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 is provided on when to use this tool versus alternatives (e.g., lattice_update_stack_compose, lattice_get_stack_containers). The description does not specify prerequisites or scenarios where reconciliation is appropriate.

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

lattice_test_backup_destinationA

Test connectivity and credentials for a backup destination without writing a real backup. The test is dispatched over the worker's WebSocket, so worker_id is required and that worker must be connected

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBackup destination ID
worker_idYesWorker to run the test from — required; the test runs on this worker over its WebSocket, so it must be connected

TDQS

A4.3/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 discloses the WebSocket dispatch mechanism, worker connectivity requirement, and that no real backup is written. However, it does not mention potential error states, timeouts, or return behavior, which limits 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 two sentences with no redundant information. It front-loads the purpose and efficiently explains the mechanism in the second sentence.

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 is simple (2 params, no output schema), and the description covers purpose, mechanism, and a key precondition. It could mention expected output (e.g., success/failure indication) for full completeness.

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

Parameters5/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds value by explaining why worker_id is required (WebSocket dispatch) and the worker connectivity condition, going beyond the schema's field 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 'Test connectivity and credentials for a backup destination without writing a real backup.' It uses a specific verb-resource combination and distinguishes this tool from sibling test tools like lattice_test_webhook or lattice_test_registry.

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 specifies when to use (test connectivity/credentials) and provides critical context: 'dispatched over the worker's WebSocket, so worker_id is required and that worker must be connected.' It does not explicitly state when not to use or list alternatives, but the context is sufficiently clear.

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

lattice_test_registryB

Test a saved registry's stored credentials

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRegistry ID

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description carries the full burden. It only says 'Test' with no indication of side effects, return values, or behavior. Users don't know if it's read-only or what happens on success/failure.

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 a single short sentence with no wasted words. It is appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness.

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?

For a simple test tool with one parameter and no output schema, the description is minimally complete. It does not explain what the test does, how results are returned, or any failure modes, leaving significant 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?

The schema already describes the 'id' parameter as 'Registry ID' with 100% coverage. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states it tests the stored credentials of a saved registry, which is a specific action. It distinguishes itself from siblings like 'lattice_test_registry_inline' which tests inline credentials, and 'lattice_test_backup_destination' which tests backup destinations.

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 is provided on when to use this tool versus alternatives like creating/updating registries or other test tools. The description lacks any context about prerequisites or conditions.

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

lattice_test_registry_inlineB

Test registry credentials before saving them

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesRegistry URL
passwordYesRegistry password or access token
usernameYesRegistry username

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 bears full responsibility for behavioral disclosure. It only states the purpose without detailing side effects, return behavior, or whether the test actually saves credentials.

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 a single, concise sentence that gets straight to the point. It is front-loaded and free of fluff.

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?

For a test tool with no output schema, the description should clarify what the test returns (e.g., success/failure). It lacks this information, making it incomplete for an agent to understand the outcome.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already has a description. The tool description adds context ('before saving them') but does not enhance 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 'Test registry credentials before saving them' clearly states the action (test) and the resource (registry credentials), distinguishing it from other registry tools like lattice_test_registry by implying it's a pre-save validation step.

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 before saving credentials, but lacks explicit when-to-use or alternatives. It does not mention 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.

lattice_test_smtpA

Send a test email using the saved SMTP configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/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 side effects (e.g., whether an actual email is sent), required permissions, or failure behavior. The term 'test' hints at non-destructiveness, but it is not explicit.

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 a single sentence of nine words, highly concise and front-loaded with the verb and resource. Every word earns its place.

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 the tool's simplicity (no parameters, no output schema), the description is too terse. It does not explain what the test entails, what email is sent, or what the expected outcome is, leaving critical gaps for a test 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 no parameters, so the input schema is fully covered. The description adds no parameter-specific meaning, 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?

The description clearly states the action ('Send a test email') and the resource ('using the saved SMTP configuration'). It effectively distinguishes the tool from siblings like `lattice_get_smtp_config` and `lattice_update_smtp_config`.

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 that the tool is used to test the SMTP configuration, but it does not explicitly state when to use it versus other test tools like `lattice_test_webhook` or `lattice_test_backup_destination`. No when-not-to-use guidance is provided.

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

lattice_test_webhookB

Send a test payload to a webhook to verify the endpoint accepts it

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook ID

TDQS

B3.4/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 full burden. It states the action but lacks details on the test payload, side effects, error handling, or success criteria. For a test tool, more transparency is expected.

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 a single sentence with no extraneous information. It is concise and front-loaded with the core action.

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 the tool is a test action with one parameter and no output schema, the description does not explain what constitutes a successful test, the structure of the test payload, or how to interpret results. The agent lacks context to use the tool effectively.

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

Parameters3/5

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

Schema description coverage is 100% (single parameter 'id' described as 'Webhook ID'). The description adds no extra meaning beyond what the schema provides, so baseline score applies.

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

Purpose5/5

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

The description clearly states the tool sends a test payload to a webhook to verify endpoint acceptance. It uses specific verb+resource ('send a test payload to a webhook') and distinguishes well from sibling webhook CRUD tools and other test 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?

The description implies usage after creating/updating a webhook, but provides no explicit when-to-use, when-not-to-use, or alternatives like other test tools (e.g., lattice_test_backup_destination). Guidance is minimal.

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

lattice_unpause_containerC

Unpause a paused container

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID

TDQS

C2.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 carry full behavioral disclosure. It only states the action; missing prerequisites (container must be paused), side effects, or required permissions.

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

Conciseness4/5

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

Extremely concise and front-loaded, but arguably under-specified for a mutation tool. Every word earns its place, but more detail could fit without verbosity.

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?

Minimally complete for a simple operation with one parameter and no output schema. However, more behavioral context (e.g., what happens if already unpaused) would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the 'id' parameter. The description adds no additional meaning, meeting the baseline score for high coverage.

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 verb 'Unpause' and the resource 'container,' distinguishing it from siblings like 'Pause container.' It could indicate the specific context (Lattice) but 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 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 versus alternatives like 'start_container' or 'restart_container.' Lacks explicit when/when-not instructions.

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

lattice_update_apiA

Update the Lattice API container. Pass version to deploy or roll back to a specific tag; omit it to take whatever the compose file resolves to. Returns 'already up to date' without restarting when the resolved image is the one already running

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRecreate even when the image is unchanged — use after an environment-variable change
versionNoImage tag to deploy, e.g. v1.3.21. Written to the compose env file, so it persists across restarts. Omit to follow the existing tag

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description covers important behavior: image-unchanged detection ('already up to date' no restart), and the 'force' parameter for env-variable changes. However, it omits details such as whether restarts occur on actual updates, permission requirements, or error states.

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 with no wasted words. The first sentence states the purpose and parameters; the second explains the return behavior. Front-loaded and efficient.

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?

For a simple mutate tool with no output schema, the description explains key return behavior and parameter usage. However, it lacks details on success/failure indicators, idempotency, and potential side effects (e.g., downtime, service interruption). Adequate but 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 coverage is 100% with descriptions. The description adds value by explaining that 'version' persists across restarts and clarifying the use case for 'force' (after env-variable changes). This enriches the schema-provided info, exceeding the baseline of 3.

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?

Description clearly states 'Update the Lattice API container', specifying the target resource (API container) and action. It is distinct from sibling tools like 'lattice_update_stack' or 'lattice_update_web', though it could explicitly contrast with them for stronger differentiation.

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 guidance on when to pass the 'version' parameter (to deploy/rollback) versus omit it (follow compose file), but it does not explain when this tool should be used instead of siblings like 'lattice_update_stack_compose' or 'lattice_deploy_stack'. No explicit alternatives or usage context relative to other tools.

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

lattice_update_backup_destinationB

Update a backup destination. Passing config replaces the whole object, it does not merge

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBackup destination ID
nameNo
typeNo
activeNo
configNoReplacement configuration object

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It notes that config replacement does not merge, which is a critical detail. However, it does not clarify effects on other fields (name, type, active) or whether updates are idempotent. The term 'whole object' is ambiguous regarding scope.

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 two short sentences. The first states the purpose, the second adds a key behavioral detail. It is front-loaded and efficient, but could be slightly clearer about the scope of 'whole object.'

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 5 parameters, nested config, no output schema, and no annotations, the description is incomplete. It fails to explain the update effect on name/type/active, return values, idempotency, or errors. For a CRUD update tool, much more context is needed.

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?

Schema coverage is low (40%), so the description should compensate. It adds meaning for the config parameter ('replaces whole object, not merge'), but ignores the undocumented parameters (name, type, active). Users lack guidance on updating these fields, leaving significant 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 'Update a backup destination,' which identifies the operation and resource. It distinguishes from sibling tools like create, delete, get, list, and test by focusing on modification. The additional note about config replacement further clarifies the specific update behavior.

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 when modifying an existing backup destination, but does not explicitly state when to use this tool versus create or delete. It does not mention prerequisites or scenarios where it should not be used. The config replacement hint provides limited guidance.

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

lattice_update_containerA

Update a container definition. Changes the stored record — redeploy or recreate the container for them to take effect

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContainer ID
tagNo
nameNo
imageNo
statusNo
commandNo
volumesNoJSON object string
env_varsNoJSON object string
replicasNo
cpu_limitNo
entrypointNo
memory_limitNo
port_mappingsNoJSON array string
restart_policyNo

TDQS

A3.7/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. It discloses that the tool changes the stored record and requires redeploy/recreate, adding behavioral context. However, it omits details about partial updates, validation, error conditions, or the impact on running containers.

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 sentences, immediately stating the action and key consequences, with no unnecessary words.

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 the complexity (14 parameters, no output schema, low schema coverage), the description is insufficient. It lacks details on return values, error handling, prerequisites, and partial updates, making it incomplete for effective tool usage.

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 only 29% schema coverage, most parameters lack descriptions. The description does not add any parameter-specific semantics beyond implying the 'id' is required. It fails to compensate for the low coverage, leaving the agent without guidance on parameter usage.

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

Purpose5/5

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

Description clearly states it updates a container definition, specifying 'update' as verb and 'container definition' as resource, and distinguishes from sibling tools like create_container or delete_container by indicating it modifies an existing record.

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 that redeploy or recreate is needed for changes to take effect, providing clear context for post-update actions. However, it does not explicitly mention when not to use this tool or compare it to alternatives like lattice_create_container or lattice_recreate_container.

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

lattice_update_database_instanceA

Update a database instance's configuration. Only the fields you pass are changed

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDatabase instance ID
nameNo
portNoNew host port; rejected with 409 if already claimed on the worker
activeNo
statusNoLifecycle status — normally managed by the reconciler; set manually only to correct drift
passwordNoNew application user password
cpu_limitNo
memory_limitNoMemory limit in MEGABYTES
health_statusNo
root_passwordNoNew root password
retention_countNo
snapshot_scheduleNoCron expression for automatic snapshots
backup_destination_idNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It states it's a mutation and partial update, but doesn't disclose potential side effects, error conditions, or permission requirements. The schema mentions a port conflict scenario, but the tool description omits 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?

A single sentence that is front-loaded with the main purpose and includes a key behavioral note about partial updates. No redundant or irrelevant information.

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?

Despite having 13 parameters and no output schema, the description provides minimal context. It doesn't explain return values, error handling, or common use cases, leaving the agent to rely heavily on the schema and inference.

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 54% schema coverage, the description adds no parameter-level detail beyond the general action. It does not explain the meaning or implications of fields like status, health_status, or schedules, leaving interpretation to the schema alone.

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

Purpose5/5

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

The description clearly states the action ('Update') and the resource ('database instance's configuration'). It distinguishes from siblings by specifying 'database instance' among many update tools for different entities.

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

Usage Guidelines3/5

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

It indicates partial updates ('Only the fields you pass are changed'), but lacks explicit guidance on when to use this tool versus alternatives like create or delete, or any prerequisites.

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

lattice_update_env_varA

Update a global environment variable's value or secret flag. Containers pick it up on their next deploy

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEnv var ID
valueNoNew value
is_secretNoMask the value in listings

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 the full burden. It discloses the deferred effect ('next deploy'), which is valuable. However, it does not mention permissions, idempotency, or error handling, leaving gaps for a mutation tool.

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

Conciseness5/5

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

Two sentences, each serving a clear purpose: first states the action and scope, second adds behavioral context. No redundant words, efficiently 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 simple update tool with few parameters and no output schema, the description covers the core purpose and a key behavioral aspect (deploy timing). It could mention return values or error states, but given low complexity, it is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters. The description adds no additional detail beyond mapping 'value or secret flag' to the parameters. It does not clarify formats or constraints, so it meets the baseline 3.

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

Purpose5/5

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

The description clearly specifies the verb 'Update' and the resource 'global environment variable', and lists what can be updated ('value or secret flag'). It effectively distinguishes from sibling tools like lattice_create_env_var and lattice_delete_env_var.

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 useful context that changes take effect on next deploy, implying when to expect results. While it doesn't explicitly state when to use this tool vs. alternatives, the purpose is clear enough to differentiate from create/delete.

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

lattice_update_notification_prefsA

Update notification preferences. Merges into existing prefs; unknown event types are ignored rather than rejected, so verify with lattice_get_notification_prefs afterwards

ParametersJSON Schema
NameRequiredDescriptionDefault
preferencesYesObject keyed by event type, e.g. {"container.status":{"email":true}}

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 key behavioral traits: merging into existing prefs and ignoring unknown event types, plus the need to verify. This adds significant value beyond terse 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?

Two concise sentences, no fluff. The key information about merge behavior and verification is front-loaded, making it 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?

For a simple update tool with one parameter, the description is fairly complete. It could mention auth requirements or reversibility, but these are standard for update endpoints. The verification advice compensates for lack of output schema.

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

Parameters4/5

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

Schema coverage is 100%, providing an example and description of the preferences object. The description adds behavioral context (merging and ignoring unknown types), which clarifies parameter behavior beyond the schema's type definition.

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 updates notification preferences, specifies the merging behavior, and distinguishes itself from the sibling get tool by mentioning verification with lattice_get_notification_prefs.

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 advises verification with the get tool afterward, indicating usage context. It doesn't explicitly list when not to use it, but the merging and ignoring behaviors give sufficient guidance.

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

lattice_update_registryB

Update a registry's URL, type, credentials or active flag

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRegistry ID
urlNo
nameNo
typeNo
activeNo
passwordNo
usernameNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only lists updatable fields but lacks disclosure of side effects, permissions, reversibility, or return behavior.

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?

Single sentence, front-loaded with key action and fields, no fluff. However, may be too brief given the tool's complexity.

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, but description omits return values, required permissions, and preconditions. Incomplete for an update tool with 7 parameters.

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

Parameters3/5

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

Schema coverage is only 14%; description adds meaning by naming updatable fields, but does not detail parameter format or constraints for fields beyond 'id'.

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 'Update a registry' and lists specific fields (URL, type, credentials, active flag), distinguishing it from siblings like create, delete, test, 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?

Implies usage for modifying registry settings, but no explicit when-to-use, when-not-to-use, or alternatives (e.g., test_registry for testing credentials).

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

lattice_update_smtp_configC

Update the SMTP configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
portNoPort as a string, matching the API
enabledNo
passwordNo
usernameNo
from_nameNo
from_emailNo
recipientsNoComma-separated recipient list

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are present, so the description bears full burden. It only says 'Update', which implies mutation, but fails to explain whether it replaces or merges settings, what happens to omitted parameters, or any destructive behavior.

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

Conciseness2/5

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

The description is extremely short (one sentence) but lacks necessary detail. It sacrifices informativeness for brevity, resulting in under-specification.

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

Completeness1/5

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

Given 8 parameters, no output schema, and no annotations, the description is severely incomplete. It provides almost no context about use cases, effects, or parameter relationships.

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?

Schema description coverage is low (25%), but the description adds no explanation for any of the 8 parameters. The schema only documents 'port' and 'recipients', leaving meaning of others unclear. Description should compensate but does not.

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 states the verb 'Update' and resource 'SMTP configuration'. It is clear but does not distinguish from siblings like 'lattice_get_smtp_config' (retrieve) or 'lattice_test_smtp' (test).

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 usage guidelines provided. The description does not indicate when to use this tool versus alternatives, nor any prerequisites or conditions.

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

lattice_update_sso_configA

Update the SSO configuration. Misconfiguring this can lock every SSO user out of Lattice — verify local admin access first

ParametersJSON Schema
NameRequiredDescriptionDefault
scopesNo
enabledNo
client_idNo
token_urlNo
logout_urlNo
button_labelNo
redirect_urlNo
userinfo_urlNo
authorize_urlNo
client_secretNo
auto_provisionNoCreate a local user on first SSO login
post_login_urlNo
user_identifierNoClaim used to identify the user, e.g. 'email' or 'sub'

TDQS

A3.7/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 potential destructive impact (lockout) and suggests a prerequisite (local admin access). While not exhaustive, it provides key risk 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 two sentences: one stating the action, one providing critical caution. No wasted words, front-loaded with purpose.

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 13 parameters, no output schema, and no annotations, the description omits parameter semantics and return value details. The warning is strong but insufficient for a complex update tool.

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

Parameters1/5

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

Schema description coverage is only 15% (2 of 13 parameters documented). The description adds no parameter explanations, failing to compensate for the low coverage. Parameters like scopes, token_url, etc. remain unclear.

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 'Update the SSO configuration' with a specific verb and resource. This distinguishes it from the read-only sibling 'lattice_get_sso_config'.

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 warns about the risk of locking SSO users and advises verifying local admin access first, providing clear when-to-use guidance. However, it does not explicitly mention alternatives or conditions for use.

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

lattice_update_stackC

Update stack configuration (name, description, strategy, worker, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID
nameNoStack name
activeNoWhether the stack is active
statusNoStack status
worker_idNoAssigned worker ID
auto_deployNoEnable auto-deploy on image push
descriptionNoStack description
deployment_strategyNoDeployment strategy

TDQS

C2.9/5.0
Behavior2/5

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

The description says 'update' implying mutation but does not disclose side effects, required permissions, idempotency, or partial update semantics. With no annotations, this is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is a single concise sentence, front-loaded with key purpose. No unnecessary words.

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 and no output schema or annotations, the description is too brief. It does not mention required id, optionality of others, or effects of updating fields like active or status. Leaves agent guessing.

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 has 100% description coverage, so parameters are already documented. The description adds minimal value by listing a few fields, but does not enhance understanding beyond the schema. Baseline 3 is appropriate.

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

Purpose4/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 resource (stack configuration) with examples like name, description, strategy, worker. It distinguishes from create/delete/list siblings but could be more specific about all updateable fields.

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 versus alternatives like lattice_update_stack_compose or when to use create vs update. The description implies use when modifying stack settings, but lacks explicit context.

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

lattice_update_stack_composeA

Replace a stack's compose YAML. This rewrites the stored definition but does not deploy — call lattice_deploy_stack afterwards

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStack ID
compose_yamlYesFull compose YAML document

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 the full burden. It discloses that the tool rewrites the stored definition without deploying, which is key for understanding its non-destructive nature in terms of deployment. However, it does not mention permissions, side effects on the stack, or whether the rewrite is immediate and persistent.

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 sentences with zero wasted words. It front-loads the action and immediately clarifies a critical nuance (no deployment), making it efficient 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?

For a simple update tool with two parameters and no output schema, the description covers the essential usage and next steps. It could mention that the compose YAML must be valid or that the tool does not validate it, but this is not critical for basic agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both parameters (id and compose_yaml). The description adds no extra semantic value beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Replace' and resource 'stack's compose YAML', clearly stating the tool's purpose. It differentiates from siblings like lattice_deploy_stack by explicitly stating it does not deploy, and from lattice_update_stack by focusing on compose YAML specifically.

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 states that the tool does not deploy and advises calling lattice_deploy_stack afterwards, providing explicit usage guidance. However, it does not directly contrast with other update tools like lattice_sync_stack_compose or lattice_update_stack, leaving some ambiguity about when to use each.

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

lattice_update_userA

Update a user's name, role or active flag. Setting active=false blocks their access immediately

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUser ID
nameNo
roleNo
activeNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full behavioral disclosure. It discloses that setting active=false blocks access immediately, which is important. However, it does not mention other behavioral traits such as permissions required, side effects on ongoing sessions, or idempotency.

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 concise sentences with no extraneous information. The purpose is front-loaded in the first sentence, making it efficient for the agent to parse.

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?

For a mutation tool with 4 parameters, no output schema, and no annotations, the description covers the purpose and one behavioral aspect. However, it omits information about required parameter 'id', partial update semantics, and response format. It is minimally viable but incomplete.

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?

The description adds meaning beyond the schema by explaining that name, role, and active are the updatable fields and that active=false blocks access. However, schema coverage is low (25%), and the description does not detail valid values for 'role' or that updates are partial. It compensates partially but lacks completeness.

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 'Update' and the resource 'a user', listing specific updatable fields (name, role, active flag). It distinguishes from sibling tools like lattice_create_user and lattice_delete_user.

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 updating user fields but provides no explicit guidance on when to use this tool versus alternatives like create or delete. No when/when-not conditions or alternatives are mentioned.

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

lattice_update_webA

Update the Lattice web container. Pass version to deploy or roll back to a specific tag; omit it to take whatever the compose file resolves to

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRecreate even when the image is unchanged
versionNoImage tag to deploy, e.g. v1.3.25. Written to the compose env file, so it persists across restarts. Omit to follow the existing tag

TDQS

A3.9/5.0
Behavior2/5

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

No annotations exist, so description alone must disclose behavioral traits. It explains version persistence, but omits force behavior, restart implications, permissions, or potential side effects, leaving significant gaps.

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 efficient sentences, front-loaded with purpose, no wasted words, highly scannable.

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 version usage well but lacks explanation of force parameter, output format, and side effects. With 2 params and no output schema, more detail 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?

Schema coverage is 100%, baseline 3. Description adds meaningful context for version parameter (persistence, fallback), though force lacks additional explanation beyond schema.

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

Purpose5/5

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

The description clearly states 'Update the Lattice web container' and distinguishes usage scenarios with and without version, setting it apart from sibling tools like lattice_deploy_stack.

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 states when to pass version (deploy/roll back) and when to omit (follow compose file), but does not mention when not to use or compare to alternatives like lattice_rollback_deployment.

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

lattice_update_webhookB

Update a webhook's URL, event list, secret or active flag

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook ID
urlNo
nameNo
activeNo
eventsNoJSON array string of event types
secretNo

TDQS

B3.1/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 only says 'update' without detailing mutation behavior, such as whether unspecified fields remain unchanged, permission requirements, or if the update is reversible.

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?

A single concise sentence front-loads the purpose. However, it could be slightly expanded to mention the required 'id' parameter, but that is acceptable as the schema carries that info.

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 no annotations, no output schema, and 6 parameters with low schema coverage, the description is insufficient. It does not mention the id requirement, return value, or confirmation of update, making it incomplete for an update operation.

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

Parameters3/5

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

With only 33% schema description coverage, the description adds meaning by listing URL, events, secret, and active as updatable fields. However, it does not explain the events parameter format (JSON array string) or the name parameter, leaving 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 the verb 'update' and resource 'webhook', and enumerates the fields that can be updated: URL, event list, secret, or active flag. This distinguishes it from sibling tools like list_webhooks, create_webhook, etc.

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 is provided on when to use this tool versus alternatives like create_webhook or delete_webhook. There are no when-not instructions, prerequisites, or contextual hints.

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

lattice_update_workerC

Update a worker's name, hostname, IP, status, labels or active flag

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID
nameNo
activeNo
labelsNoJSON object string of labels
statusNo
hostnameNo
ip_addressNo

TDQS

C2.7/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 disclose behavioral traits. It only says 'update', which implies mutation, but does not clarify whether it performs a partial update or full replace, what validation occurs, authorization requirements, or potential side effects like downtime. This is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is a single concise sentence that efficiently lists the updatable fields. It is front-loaded and contains no unnecessary words. However, it could be improved with minimal additional context like requiring the worker ID.

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 the tool has 7 parameters, no output schema, and many related sibling tools (e.g., delete, reboot, upgrade), the description is too minimal. It does not explain behavior for omitted fields, partial vs. full update, or what the response looks like. It lacks essential context 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.

Parameters2/5

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

Schema description coverage is only 29% (id and labels have descriptions). The description repeats field names (name, hostname, IP, status, labels, active flag) but does not add constraints, format details, or relationships. For example, 'status' may have allowed values, but none are provided. The description fails to compensate for the low schema coverage.

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?

Description clearly states 'Update a worker' and lists specific fields (name, hostname, IP, status, labels, active flag). This distinguishes it from sibling tools like create, delete, list, and get worker tools. However, it does not explicitly mention that the update is for a specific worker by ID, which is implied by the required parameter.

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 is provided on when to use this tool versus alternatives like lattice_reboot_worker, lattice_upgrade_worker, or lattice_stop_all_worker. There is no mention of prerequisites (e.g., worker must exist) or when not to use this tool. The description lacks explicit usage context.

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

lattice_upgrade_workerB

Upgrade worker runner to latest version

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorker ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states 'upgrade' implying mutation, but fails to mention whether it's destructive, if it causes downtime, requires specific permissions, or what happens to running tasks. This opacity is insufficient for safe agent invocation.

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 a single sentence with no unnecessary words. It is front-loaded and achieves maximum efficiency, earning its place.

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 the lack of output schema and annotations, the description should explain return format, error conditions, or side effects. It does none of this, leaving the agent to assume success/failure without details. For a mutation tool, this is incomplete.

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?

The input schema has 100% coverage with one parameter 'id' described as 'Worker ID'. The description adds no additional semantics, such as format or constraints, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Upgrade worker runner to latest version' clearly states the verb (upgrade), resource (worker runner), and scope (to latest version). Among sibling tools like lattice_update_worker and lattice_reboot_worker, this tool is uniquely identified by specifying the runner upgrade, so purpose is distinct.

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?

The description provides no guidance on when to use this tool versus alternatives, such as lattice_update_worker or lattice_reboot_worker. There is no mention of prerequisites (e.g., worker must exist) or situations to avoid using it, leaving the agent without decision-making support.

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. 133 tool updatesv1.4.0
    • First observedlattice_approve_deployment
    • First observedlattice_create_api_token
    • First observedlattice_create_backup_destination
    • First observedlattice_create_container
    • First observedlattice_create_database_instance
    • First observedlattice_create_database_snapshot
    • First observedlattice_create_deploy_token
    • First observedlattice_create_env_var
    • First observedlattice_create_registry
    • First observedlattice_create_stack
    • First observedlattice_create_template
    • First observedlattice_create_user
    • First observedlattice_create_webhook
    • First observedlattice_create_worker
    • First observedlattice_create_worker_network
    • First observedlattice_create_worker_token
    • First observedlattice_create_worker_volume
    • First observedlattice_database_action
    • First observedlattice_delete_api_token
    • First observedlattice_delete_backup_destination
    • First observedlattice_delete_container
    • First observedlattice_delete_database_instance
    • First observedlattice_delete_database_snapshot
    • First observedlattice_delete_deploy_token
    • First observedlattice_delete_env_var
    • First observedlattice_delete_network
    • First observedlattice_delete_registry
    • First observedlattice_delete_stack
    • First observedlattice_delete_template
    • First observedlattice_delete_user
    • First observedlattice_delete_webhook
    • First observedlattice_delete_worker
    • First observedlattice_delete_worker_network
    • First observedlattice_delete_worker_token
    • First observedlattice_delete_worker_volume
    • First observedlattice_deploy_stack
    • First observedlattice_export_stack
    • First observedlattice_force_remove_container
    • First observedlattice_get_anomalies
    • First observedlattice_get_audit_log
    • First observedlattice_get_backup_destination
    • First observedlattice_get_container
    • First observedlattice_get_container_lifecycle
    • First observedlattice_get_container_logs
    • First observedlattice_get_container_metrics
    • First observedlattice_get_database_connection
    • First observedlattice_get_database_credentials
    • First observedlattice_get_database_events
    • First observedlattice_get_database_instance
    • First observedlattice_get_database_lifecycle_logs
    • First observedlattice_get_database_logs
    • First observedlattice_get_deployment
    • First observedlattice_get_deployment_logs
    • First observedlattice_get_fleet_metrics
    • First observedlattice_get_notification_prefs
    • First observedlattice_get_self
    • First observedlattice_get_smtp_config
    • First observedlattice_get_sso_config
    • First observedlattice_get_stack
    • First observedlattice_get_stack_containers
    • First observedlattice_get_version
    • First observedlattice_get_versions
    • First observedlattice_get_worker
    • First observedlattice_get_worker_container_stats
    • First observedlattice_get_worker_metrics
    • First observedlattice_get_worker_port_availability
    • First observedlattice_health
    • First observedlattice_import_compose
    • First observedlattice_import_stack_export
    • First observedlattice_kill_container
    • First observedlattice_list_all_networks
    • First observedlattice_list_api_tokens
    • First observedlattice_list_backup_destinations
    • First observedlattice_list_containers
    • First observedlattice_list_database_instances
    • First observedlattice_list_database_snapshots
    • First observedlattice_list_deploy_tokens
    • First observedlattice_list_deployments
    • First observedlattice_list_env_vars
    • First observedlattice_list_registries
    • First observedlattice_list_registry_repositories
    • First observedlattice_list_registry_tags
    • First observedlattice_list_stacks
    • First observedlattice_list_templates
    • First observedlattice_list_users
    • First observedlattice_list_webhooks
    • First observedlattice_list_worker_networks
    • First observedlattice_list_worker_tokens
    • First observedlattice_list_worker_volumes
    • First observedlattice_list_workers
    • First observedlattice_open_database_console
    • First observedlattice_overview
    • First observedlattice_pause_container
    • First observedlattice_reboot_worker
    • First observedlattice_recreate_container
    • First observedlattice_refresh_versions
    • First observedlattice_remove_container
    • First observedlattice_restart_container
    • First observedlattice_restart_stack
    • First observedlattice_restore_database_snapshot
    • First observedlattice_reveal_database_credentials
    • First observedlattice_rollback_deployment
    • First observedlattice_save_stack_as_template
    • First observedlattice_search
    • First observedlattice_start_all_worker
    • First observedlattice_start_container
    • First observedlattice_start_stack
    • First observedlattice_stop_all_worker
    • First observedlattice_stop_container
    • First observedlattice_stop_stack
    • First observedlattice_sync_stack_compose
    • First observedlattice_test_backup_destination
    • First observedlattice_test_registry
    • First observedlattice_test_registry_inline
    • First observedlattice_test_smtp
    • First observedlattice_test_webhook
    • First observedlattice_unpause_container
    • First observedlattice_update_api
    • First observedlattice_update_backup_destination
    • First observedlattice_update_container
    • First observedlattice_update_database_instance
    • First observedlattice_update_env_var
    • First observedlattice_update_notification_prefs
    • First observedlattice_update_registry
    • First observedlattice_update_smtp_config
    • First observedlattice_update_sso_config
    • First observedlattice_update_stack
    • First observedlattice_update_stack_compose
    • First observedlattice_update_user
    • First observedlattice_update_web
    • First observedlattice_update_webhook
    • First observedlattice_update_worker
    • First observedlattice_upgrade_worker

TDQS

B3.3/5.0
Disambiguation4/5

Despite the large number of tools, the naming is specific enough that most tools have clearly distinct purposes. A few sets (like stop/kill/pause/remove container) might cause minor confusion, but descriptions help differentiate.

Naming Consistency4/5

All tools follow the 'lattice_verb_noun' pattern consistently. Verbs like get, create, delete, update, list are standard. Minor deviations like 'force_remove' and 'open' are rare and still readable.

Tool Count2/5

133 tools is excessive for a single MCP server. While the domain (fleet orchestration) is broad, this number will overwhelm agents and increase selection errors. A more focused toolset (e.g., 30-50) would be more appropriate.

Completeness5/5

The toolset provides full CRUD coverage for stacks, containers, workers, databases, API tokens, deployments, audit logs, and more. It even includes deprecated tools with recommended replacements, showing thorough lifecycle management.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

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

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/aidenappl/lattice-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server