mcp-linx
MCP-Linx is an MCP server for Linux infrastructure diagnostics, exposing tools to inspect and troubleshoot hosts, containers, databases, services, networking, and observability stacks.
Monitor Linux host: CPU, memory, disk, load, processes, logs, network interfaces, firewall/nftables, filesystem details, and execute read-only commands.
Inspect Nginx: service status, error/access logs, config validation, upstream health, and stub_status metrics.
Docker diagnostics: list containers, logs, stats, full container/system info, events, disk usage, and dry-run prune preview.
PostgreSQL: active connections, locks, slow queries, activity, table/index stats, replication status, and table sizes.
Redis: ping, INFO sections, client list, slowlog, and memory/fragmentation/eviction analysis.
Systemd: unit status, failed units, journal logs, boot-time analysis, and effective service IP filters.
Network diagnostics: HTTP(S) checks, TLS certificate inspection, DNS resolution, TCP connect timing, per-service-user TCP probes, and tcpdump captures.
Kubernetes: pods, events, logs, describe, top resource usage, and deployment status.
Prometheus: instant/range PromQL queries, active alerts, and scrape target health.
Loki: LogQL search, label discovery, and log tailing.
Aggregated system tools: full diagnostic context, component summary, health check across plugins, and parallel host/web-service diagnosis.
Supports multi-host remote execution via SSH/bastion, PostgreSQL SSH tunnels, multi-target PostgreSQL, and security controls like read-only mode, command blocking, output limits, and rate limiting.
Provides tools for listing containers, retrieving container logs and stats, inspecting container or system info, monitoring Docker events, and checking Docker disk usage.
Provides tools for monitoring and diagnosing the Linux host, including CPU, memory, disk, load, processes, network activity, system logs, and execution of read-only commands.
Provides tools for checking Nginx service status and processes, reading error and access logs, validating Nginx configuration, and monitoring upstream server status.
Provides tools for inspecting database activity, active connections, locks, slow queries, schema statistics, replication status, and table sizes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-linxCheck system health and nginx status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-Linx — MCP Server for Linux Infrastructure Diagnostics
Русская версия:
README.ru.md.
Status: Alpha (1.0.0). The plugin/tool API and configuration keys may change without a deprecation period. Not yet hardened for untrusted networks — see Security.
MCP-Linx is an MCP (Model Context Protocol) server for Linux infrastructure diagnostics. It provides tools for monitoring and diagnosing components: Linux host, Nginx, Docker, PostgreSQL, Redis, Systemd, Netdiag, Kubernetes, Prometheus, Loki.
Installation
# Create a virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -e ".[dev]"Related MCP server: DevOps Dashboard MCP Server
Running the Server
# Start MCP server (stdio mode)
python -m mcp_linx.main
# With MCP Inspector for debugging
npx @modelcontextprotocol/inspector python -m mcp_linx.mainDocker
Two deployment models with the same image:
Model A (default, safe) — isolated container diagnosing remote hosts over SSH; postgres/redis/prometheus/loki/k8s over the network.
Model B (host) — diagnosing the local host (Linux only): requires
pid: host,network_mode: hostand read-only mounts (seedocker-compose.yml). Note: mountingdocker.sockgrants root-equivalent access to the Docker host.
# Build
docker build -t mcp-linx:latest .
# Run via compose (stdio; MCP clients: command=docker, args=["run","-i","--rm","mcp-linx:latest"])
docker compose run --rm mcp-linx
# Claude Desktop / MCP Inspector config
{
"mcpServers": {
"mcp-linx": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/absolute/path/config:/app/config:ro", "mcp-linx:latest"]
}
}
}Configuration
Main configuration file: config/settings.yaml
Environment variables: copy .env.example → .env for the five server settings
only (names without a prefix). Plugin secrets must be supplied in the process
environment, not added to .env: unknown dotenv keys cause a validation error.
YAML expands ${VAR} / ${VAR:-default} from that environment; a missing variable
without a default logs a warning and falls back to the entire unexpanded YAML.
An empty environment value does not trigger the default. Expansion is textual
(before YAML parsing), so values must remain valid in their YAML quoting context.
See Environment and configuration
for local and Docker setup, audit logging, and shutdown behavior.
plugins.enabled selects the active plugin set: only listed plugins are loaded,
initialized, expose MCP tools, and participate in health checks. An empty or absent
list means all discovered plugins. This is configuration of composition, not an
access-control boundary (system tools and the MCP transport are unaffected).
security:
readonly: true # Command validation only; not a Docker API write gate
max_command_output_size: 10000
max_log_lines: 500
command_timeout_seconds: 30 # Default plugin command timeout (per-tool timeout wins)
rate_limit_max_calls: 60 # Calls per tool per sliding window
rate_limit_window_seconds: 60 # Window duration in seconds
allowed_hosts: [localhost] # Add names from hosts: to permit remote calls
# Multi-host: named remote targets for SSH-based diagnostics.
hosts: {}
# hosts:
# web-1:
# host: 10.130.0.23
# port: 22
# username: user
# key_file: ~/.ssh/id_rsa
# password: null # prefer env
# host_key_policy: reject # reject | warning | auto_add
# known_hosts: null
plugins:
enabled:
- linux
- nginx
- docker
- postgres
- redis
- systemd
- netdiag
- kubernetes
- prometheus
- loki
postgres:
host: "localhost"
port: 5432
password: "${POSTGRES_PASSWORD:-}" # From process environment; empty if absent
# SSL/TLS modes: disable | allow | prefer | require | verify-ca | verify-full
# verify-full is recommended for production (verifies CA + hostname)
ssl_mode: "prefer"
redis:
host: "localhost"
port: 6379
password: "${REDIS_PASSWORD:-}" # From process environment; empty if absent
nginx:
log_path: "/var/log/nginx"
stub_status_url: null # e.g. "http://127.0.0.1/nginx_status" — enables nginx_stub_status tool
kubernetes:
namespace: "default"PostgreSQL SSL modes
plugins.postgres.ssl_mode is passed to libpq as sslmode (via psycopg2.connect),
so values and semantics are libpq's:
Mode | Encryption | Server certificate | Hostname check |
| no | — | — |
| if server requires | no | no |
| yes, if available | no | no |
| yes | no | no |
| yes | yes (CA must be trusted) | no |
| yes | yes | yes |
prefer protects against passive sniffing only: it silently falls back to plaintext
if TLS is unavailable. For production use verify-full (or at least verify-ca),
make the CA available to the process (~/.postgresql/root.crt or a system trust
store) and keep the configured host identical to the certificate name — otherwise
the connection fails instead of downgrading. This server does not expose a CA path
setting: use libpq's standard locations or PGSSLROOTCERT in the process environment.
SSH reliability: retries and tunnels
SSH command execution retries connection-level failures and reconnects (E1):
Key | Where | Default | Meaning |
|
|
| total attempts; |
| same |
| base pause, grows linearly (× attempt number) |
Only connection errors (SSHException, EOFError, OSError, ConnectionError) are
retried. A non-zero command exit code is a normal result and is never retried, so
read-only diagnostics stay idempotent and predictable.
PostgreSQL can be reached through an SSH server (E2), which helps when the database is only reachable from a bastion:
plugins:
postgres:
host: db.internal # resolved on the SSH side
port: 5432
ssh:
host: bastion # SSH server to tunnel through
username: ops
key_file: ~/.ssh/id_rsa
tunnel: true # opt-in; requires ssh.hostThe plugin opens an ephemeral 127.0.0.1:<port> listener and forwards it to
db.internal:5432 through the SSH connection; the tunnel is closed on plugin
destroy(). Redis does not need this: its tools run redis-cli on the remote host
over SSH. Note that with a tunnel, TLS hostname verification (verify-full) applies to
the tunnel address, so prefer verify-ca with a trusted CA.
End-to-end verification of a tunnel requires a real SSH server; it is not covered by CI (unit tests use a fake transport and cover the forwarding and wiring paths).
Jump host (bastion)
A named host can be reached through a bastion; the pool opens a direct-tcpip channel
on the bastion and runs the SSH session to the target over it (E3):
hosts:
db-1:
host: 10.0.0.20 # target, resolved on the bastion
username: ops
key_file: ~/.ssh/id_rsa
jump_host: bastion.example.com
jump_port: 22 # default 22
jump_username: jumper
jump_key_file: ~/.ssh/jump
# jump_password: use an env-substituted value, not a literal
host_key_policy: reject # applies to both the bastion and the targetThe bastion is verified with the same host_key_policy / known_hosts as the target
(so reject needs both keys in known_hosts). The bastion connection is reused with the
target and closed together with it (drop / close_all).
PostgreSQL multi-target
Any pg_* tool accepts host: <target name>, where targets are described in the config
(E4b). Each target gets its own connection, and — with ssh.tunnel: true — its own
tunnel, so a primary and a replica behind a bastion can be diagnosed from one instance:
plugins:
postgres:
host: primary.db # used when a tool is called without `host`
port: 5432
user: postgres
password: "${POSTGRES_PASSWORD:-}"
targets:
replica:
host: replica.db
behind-bastion: # reached through SSH (E2)
host: internal.db
ssh: {host: bastion, tunnel: true}Unlisted fields are inherited from the plugin-level settings. An unknown target name
returns an error listing the configured targets. Connections and tunnels are closed on
plugin destroy().
Kubernetes multi-cluster
The Kubernetes plugin talks to one cluster per plugin instance, selected by
plugins.kubernetes.kubeconfig / context. For several clusters run additional
instances (separate CONFIG_PATH) or switch context — the k8s_* tools intentionally
have no per-call cluster argument.
Tools
Linux Plugin (9 tools)
linux_host_stats— Host statistics: CPU, memory, disk, loadlinux_processes— List of running processeslinux_logs— Read system logs (journalctl, syslog)linux_network— Network interfaces, ports, connectionslinux_firewall— Firewall snapshot: nftables + policy routing (read-only)linux_disk— Disk and filesystem usagelinux_memory— Detailed memory usage informationlinux_file_diagnostics— File path, permissions, immutable attributes, mount and service-user write check (read-only; user check requiresplugins.linux.privileged_tools: true)linux_execute_command— Execute an arbitrary read-only command
Nginx Plugin (5 tools)
nginx_status— Nginx service status and processesnginx_logs— Read error and access logsnginx_config— Nginx configuration checknginx_upstream— Upstream servers: config + real HTTP health checknginx_stub_status— stub_status metrics: active connections, requests
Docker Plugin (7 tools)
docker_containers— List containers with filteringdocker_logs— Container logsdocker_stats— Container stats: CPU, memory, networkdocker_info— Full container or system infodocker_events— Docker eventsdocker_system_df— Docker disk usagedocker_prune— Preview stopped containers (dry-run by default); deletion requires bothexecute=trueandconfirm=true
PostgreSQL Plugin (7 tools)
pg_connections— Active connectionspg_locks— Locks and blocked queriespg_slow_queries— Slow queriespg_activity— Full activity: current queries, states, waitspg_stats— Statistics: tables, indexes, databasespg_replication— Replication status (if configured)pg_tables— List of tables with sizes and stats
Redis Plugin (5 tools)
redis_ping— Redis availability (PING)redis_info— INFO sections: memory, clients, stats, replicationredis_clients— Client connections (CLIENT LIST)redis_slowlog— Slow log (SLOWLOG GET)redis_memory— Memory analysis: used, peak, fragmentation, evictions
Systemd Plugin (5 tools)
service_status— Unit status (systemctl status/is-active)failed_units— Failed units listservice_logs— Service logs via journalctl -uboot_analysis— Boot time analysis (systemd-analyze blame)service_ip_filter— Effective IP filter: unit files + eBPF/bpftool (ground truth)
Netdiag Plugin (6 tools)
http_check— HTTP(S) check: status, timings, redirectstls_check— TLS certificate: expiry, chain, issuerdns_resolve— DNS resolution A/AAAAtcp_connect— TCP connect with timingtcp_connect_as— TCP probe as service user, per-uid filters (requires privileged_tools)tcpdump_probe— Short tcpdump slice (requires privileged_tools)
Kubernetes Plugin (6 tools)
k8s_pods— Pods with phases and restartsk8s_events— Cluster/namespace eventsk8s_logs— Pod logs (kubectl logs)k8s_describe— Pod describe (conditions)k8s_top— Pod resources (kubectl top)k8s_deployments— Deployment status
Prometheus Plugin (4 tools)
prom_query— Instant PromQL queryprom_range— Range query over periodprom_alerts— Firing/pending alertsprom_targets— Scrape targets up/down
Loki Plugin (3 tools)
log_search— LogQL search over periodlog_labels— Label names/valueslog_tail— Recent lines by selector
System Tools
system_health_check— Health check of all pluginsget_diagnostic_context— Full diagnostic contextget_summary— Brief system status summarydiagnose_host— Parallel host snapshot: host stats, top processes, disk, memory, recent error logs (linux plugin). Optionalhost— a name from thehosts:registry.diagnose_web_service— Parallel web-service snapshot: nginx status, systemd unit status, recent nginx error logs, plushttp_checkwhenurlis given. Optionalservice_name(defaultnginx) andhost.kubeconfig: null # null = ~/.kube/config context: null # null = current-context
prometheus:
Linux Plugin
linux_host_statslinux_processeslinux_logslinux_networklinux_firewall— Firewall snapshot: nftables + policy routing (read-only)linux_disklinux_memorylinux_execute_command
Nginx Plugin
nginx_statusnginx_logsnginx_confignginx_upstreamnginx_stub_status
Docker Plugin
docker_containersdocker_logsdocker_statsdocker_infodocker_eventsdocker_system_dfdocker_prune
PostgreSQL Plugin
pg_connectionspg_lockspg_slow_queriespg_activitypg_statspg_replicationpg_tables
Redis Plugin
redis_pingredis_inforedis_clientsredis_slowlog— Slow log (SLOWLOG GET)redis_memory
Systemd Plugin
service_statusfailed_unitsservice_logsboot_analysisservice_ip_filter
Netdiag Plugin
http_checktls_checkdns_resolvetcp_connecttcp_connect_astcpdump_probe
Kubernetes Plugin
k8s_podsk8s_eventsk8s_logsk8s_describek8s_topk8s_deployments
Prometheus Plugin
prom_queryprom_rangeprom_alertsprom_targets
Loki Plugin
log_searchlog_labelslog_tail
Architecture
mcp-linx/
├── src/mcp_linx/
│ ├── main.py # MCP server entry point (FastMCP + AgentLoop)
│ ├── harness/ # Harness core: agent_loop, plugin_manager (auto-discovery),
│ │ # context (compaction library API)
│ ├── multihost.py # HostRegistry — named remote hosts (`hosts:` config)
│ ├── context_aggregator.py # Cross-component correlations
│ ├── security.py # SecurityGuard (command validation, readonly mode)
│ ├── types.py # Status, ToolResult, ComponentState, Correlation
│ ├── adapters/
│ │ ├── base.py # Base adapter (abstract) + LocalAdapter
│ │ ├── ssh.py # SSH adapter (paramiko)
│ │ ├── ssh_pool.py # SSHConnectionPool + RemoteHostAdapter (multi-host)
│ │ └── docker.py # Docker API adapter
│ └── plugins/ # Auto-discovered plugins (10 total, 57 tools)
│ ├── base.py # DiagnosticPlugin base class (+ `host` resolution)
│ ├── linux/ # 9 tools
│ ├── nginx/ # 5 tools
│ ├── docker/ # 7 tools
│ ├── postgres/ # 7 tools
│ ├── redis/ # 5 tools
│ ├── systemd/ # 5 tools
│ ├── netdiag/ # 6 tools
│ ├── kubernetes/ # 6 tools
│ ├── prometheus/ # 4 tools
│ └── loki/ # 3 tools
├── config/settings.yaml # Server configuration
├── tests/ # Unit + integration tests; see Testing below
├── REMOTE_TROUBLESHOOTING.md # Remote/SSH roadmap
└── docs/ # ARCHITECTURE.md, DEVELOPMENT.md, SKILLS.md,
# INCIDENT_504.md, skills/Key features:
Harness ideology: diagnostic plugins are auto-discovered from
src/mcp_linx/plugins/; agent loops are selectable viaAGENT_LOOPand context compactors are provided as a library API. Sandboxes are not part of the server (seedocs/HARNESS_ANALYSIS.md).Security: readonly mode blocks write commands (rm, mkfs, dd, fork bombs, etc.)
Context Aggregator: detects cross-component correlations
Adapters: Local subprocess, SSH (paramiko), Docker API
Multi-host: named remote targets in
hosts:;linux_*,nginx_*(exceptnginx_stub_status) andsystemd_*accept ahostargument — seeREMOTE_TROUBLESHOOTING.md
Testing
# Run all tests
pytest tests/ -v
# Run specific test file
pytest tests/unit/test_security.py -v
pytest tests/unit/test_new_plugins.py -vSecurity
Rate limiting applies to plugin tool handlers only; the system tools
(get_diagnostic_context, get_summary, system_health_check, diagnose_host,
diagnose_web_service) are registered separately and are not rate limited.
Note that diagnose_* invoke plugin tools directly, so their inner calls are
neither rate limited nor audited individually. Rejected calls are not audited.
SecurityGuard provides:
Read-only mode: Command validation blocks write commands (rm, write, mkfs, dd and others) for command-executing adapters and tools. Non-command write paths are also covered:
docker_prunerefuses to delete whilereadonly: true(theconfirmgate is an additional, independent barrier).Dangerous command blocking: rm -rf /, mkfs, dd if=/dev/zero, fork bombs etc.
Output size limiting: Truncates large command outputs
Log line limiting: Maximum number of log lines returned
Host validation: Linux, Nginx and Systemd validate an explicit
hostagainstsecurity.allowed_hostsbefore resolving the adapter. These are registry names, not destination IPs; define them inhosts:and include them in the allowlist. An empty allowlist disables this restriction. This is not a universal network ACL for API clients or probe destinations.Input validation: MCP handlers accept a
paramsdictionary; field checks are implemented by individual tools, not dedicated Pydantic schemas for every tool.
Context Aggregator
ContextAggregator analyzes states of all components and detects correlations:
Docker + Nginx: If Docker containers are down, Nginx may have no upstreams
PostgreSQL + Docker: If PostgreSQL is in a container and failing
Linux + components: If Linux is in critical state, other components may fail
OOM events: Linux OOM messages may explain container crashes
Redis + PostgreSQL: Redis evictions while PG is slow — cache-miss cascade
Linux + Kubernetes: Pods OOMKilled while host has memory pressure
Netdiag + Nginx: TLS certificate issue while Nginx is failing
License
MIT is declared in package metadata. A standalone LICENSE file is still missing;
license text and copyright attribution remain pending (TODO C1).
Available Tools
59 toolsboot_analysisBoot AnalysisC
Анализ времени загрузки (systemd-analyze)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions systemd-analyze, implying a read-only system command, but does not explicitly state safety, permissions, return behavior, or side effects. The agent cannot infer whether this tool is safe or what it outputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose. It is concise and to the point, though it sacrifices detail for brevity. No unnecessary words are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description does not explain what the tool returns or how to interpret results. It also lacks any parameter guidance. For a tool that likely just runs a command, the description is too sparse to enable correct invocation without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage and the description gives no information about the 'params' parameter. The schema itself is generic (anyOf object/null) and provides no meaning. The description completely fails to compensate, leaving the parameter semantics entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: analyzing boot time using systemd-analyze. It clearly identifies the resource and action. However, it does not differentiate from sibling tools, though none appear directly related, so a 4 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description simply states what it does without any context about suitable scenarios, prerequisites, or exclusions. For a diagnostic tool, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_resolveDns ResolveC
DNS резолвинг A/AAAA/CNAME/MX
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It appropriately conveys a read-only DNS lookup operation and does not suggest destructive side effects. However, it does not clarify whether a live network query is performed, how failures are presented, or whether the system resolver is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact phrase with no filler; the core action and record-type scope are front-loaded. It is efficient for what it contains, though it is arguably too terse for full operational clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and a nearly empty schema, the description is the main source of context. It establishes the domain and record types but omits the input contract and operational caveats. The presence of an output schema reduces the need to describe return values, but invocation details remain unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema contains a single free-form params object with 0% property coverage, so the description must compensate by explaining how to specify the target hostname and record type. It only lists the record types and never states what keys to pass, whether params can be null, or how to select among the types. An agent cannot reliably construct an invocation from this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific operation: DNS resolution, further narrowed to A, AAAA, CNAME, and MX records. It is more informative than a bare restatement of the tool name, though it is a noun phrase rather than a full imperative and does not explicitly differentiate itself from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives, no exclusions, and no prerequisites. The record-type list weakly implies a DNS-lookup use case, but the description never states 'use when a hostname must be resolved' or names any alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_containersDocker ContainersC
Список контейнеров с фильтрацией
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden; 'list' implies a read-only operation, which is useful. However, it does not disclose whether stopped containers are included by default, what filtering semantics are supported, or any Docker daemon/access requirements. The presence of an output schema covers return shape but not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded phrase with no wasted words, making it easy to scan. It is concise but somewhat vague; 'filtering' is not elaborated, so it stops short of an excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that advertises filtering, the description leaves the filter contract completely unspecified, and no annotations fill that gap. The output schema may document the response, but an agent cannot know what params to pass to achieve a desired filtered list. The low parameter schema coverage and absent usage guidance make this incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'params' object has no property documentation. The description's 'with filtering' hints that params carries filter criteria, but it does not specify accepted keys, value formats, or how filtering maps to the Docker API. This is insufficient compensation for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List containers with filtering' states a clear verb and resource, and the Docker context is reinforced by the tool name and title. It is distinguishable from sibling tools like docker_logs or docker_stats, though it does not explicitly name them. The lack of specificity about which container states are included keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as docker_stats, docker_info, or docker_logs. The only usage hint is 'with filtering', which does not explain when filtering is needed or how to choose this tool among the many Docker-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_eventsDocker EventsD
Docker события (контейнеры, образы, сети)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry all behavioral disclosure. It does not mention read-only nature, output format, streaming behavior, or any side effects. The description only names the topic and gives no insight into how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise, but it does not earn its place because it conveys almost no actionable information. There is no front-loading of key constraints or alternatives, and the sentence is a fragment rather than a clear statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description fails to explain what the tool returns or how to invoke it correctly. With a generic parameter and no behavioral context, the tool is effectively undocumented for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single generic 'params' object with additionalProperties true and no description. Schema description coverage is 0%, so the description must explain what parameters are expected. It does not, leaving the agent without any guidance on what to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the subject (Docker events) and hints at categories (containers, images, networks), but lacks a verb or explicit action. It does not say whether the tool lists, streams, or filters events. It is more informative than a pure tautology but still vague about the tool's core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like docker_logs or docker_stats. No context about typical use cases or exclusions is provided, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_infoDocker InfoC
Полная информация о контейнере или системе
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure, but 'full information' reasonably implies a read-only informational operation. It does not describe what happens when params are null versus an object, how system vs container selection occurs, or potential failure modes; the presence of an output schema mitigates the need to describe return values in detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler and front-loads the core purpose. It is appropriately concise for what it says, though the brevity comes at the cost of missing usage and parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with an output schema and a simple optional params input, the description leaves unclear when to choose docker_info over closely related Docker tools and how to express 'container' vs 'system' in the params object. The definition is therefore not complete enough for reliable tool selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes only a free-form params object with zero description coverageholms. The phrase 'container or system' hints that params may select the target, but the description never names or explains accepted keys such as a container ID or name, nor does it clarify that omitting params returns system info. With additionalProperties:true, this is a significant ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides full information about either a container or the Docker system, matching the tool name docker_info. It is clear about the broad purpose, but it does not explicitly differentiate itself from sibling read-only info tools such as docker_containers, docker_stats, or docker_system_df.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus docker_containers, docker_stats, docker_system_df, or linux_host_stats. The only hint is the phrase 'full information,' which implies a broad diagnostic use, but no explicit when/when-not or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_logsDocker LogsD
Логи контейнера
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'container logs' and reveals nothing about behavior such as whether it follows logs, applies limits, includes timestamps, requires container identification, or performs a read-only operation. This is effectively a restatement of the tool's name with no behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It provides no front-loaded operational detail and no structure that helps an agent act on it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the presence of an output schema, the description lacks any information about required inputs, supported options, or behavior. Given the large sibling set and the opaque 'params' schema, an agent cannot reliably select or invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema exposes a single free-form 'params' field with additionalProperties: true and zero documented subfields, and schema description coverage is 0%. The description does not explain what should go into 'params'—such as container ID, tail count, or filters—so the agent cannot construct a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Логи контейнера' means 'container logs', which essentially restates the tool name and title without adding a specific verb or operation. It does not say whether this fetches, tails, searches, or streams logs, and it does not distinguish the tool from sibling logging tools like docker_events, docker_stats, or log_tail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as docker_events, service_logs, nginx_logs, or k8s_logs. No prerequisites, container selection method, or exclusions are mentioned, leaving the agent to guess when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_pruneDocker PruneA
Dry-run: список остановленных контейнеров для удаления. Реальное удаление — execute=true, confirm=true
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the default is a non-destructive dry-run and that actual deletion requires explicit flags. This is essential transparency for a destructive operation, though it does not mention irreversibility in words; 'real deletion' implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the default dry-run behavior, then the trigger for real deletion. There is zero filler; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with an output schema, the description covers the essential invocation logic and safety gating. It could add a caution about permanent removal, but the dry-run and confirmation mechanism is enough for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is essentially an empty catch-all object (0% coverage), so the description is the only source of parameter meaning. It explains the two key parameters—execute and confirm—and their role in switching from dry-run to actual deletion. This fully compensates for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's core function: dry-run listing of stopped containers for removal, with real deletion gated by flags. This distinct action differentiates it from sibling tools like docker_containers or docker_stats, which only observe container state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to perform a dry-run versus a real delete (by setting execute=true, confirm=true), which is the main usage decision. It does not reference alternative tools for similar tasks, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_statsDocker StatsC
Статистика контейнера: CPU, память, сеть
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the metrics (CPU, memory, network) but does not state whether the operation is read-only, requires special permissions, or returns real-time vs. historical data. For a stats tool, this is a notable gap in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase that is concise and front-loads the key metrics. It is not verbose, but it is so brief that it omits essential invocation details. Still, it is well-structured for the information it provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, but the description does not explain the return format or how to request statistics for a specific container. Given the free-form 'params' argument and no parameter guidance, an agent cannot reliably call this tool. The description is incomplete for a tool with a parameter that needs clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'params' with no description (0% schema description coverage). The tool description does not mention this parameter at all, leaving the agent without any guidance on how to specify the target container or other options. This is a critical omission.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides container statistics for CPU, memory, and network. This is a specific resource (container) and specific metrics, clearly distinguishing it from sibling tools like docker_logs or docker_info. It lacks an explicit verb like 'get' or 'retrieve', but the meaning is clear and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to obtain container resource statistics, but it does not explicitly state when to prefer this over alternatives such as docker_info or linux_host_stats. No exclusions or alternative routing are provided, leaving usage guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_system_dfDocker System DfD
Использование диска Docker
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the topic ('Docker disk usage') and fails to mention whether the operation is read-only, what output format to expect, or any performance or permission implications. This is a critical gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (a single noun phrase), which might seem concise, but it is under-specified rather than concise. It lacks any structure that front-loads an action or key details, and the brevity is harmful because it omits essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description is completely inadequate for an agent to understand the tool's function, parameters, or how it differs from siblings like docker_stats or docker_info. With many related tools and a vague purpose, this definition leaves the agent without enough context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'params' is a generic object with additionalProperties: true and no defined properties. The description gives no explanation of its purpose, possible values, or examples, and the schema coverage is 0%. The agent receives zero guidance on how to use the parameter, making correct invocation impossible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Использование диска Docker' translates to 'Docker disk usage'. It is a noun phrase that essentially restates the tool name without specifying an action (e.g., 'List' or 'Show') or the exact scope (e.g., breakdown by images, containers, volumes). It provides minimal differentiation from sibling tools like docker_stats or docker_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, leaving the agent without direction on tool selection among the many Docker and system monitoring siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
failed_unitsFailed UnitsB
Список failed юнитов (systemctl --failed)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool runs systemctl --failed, implying a read-only listing, but it does not state side-effect safety, privilege needs, or behavior on empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler; the core action and underlying command are front-loaded. This is an appropriate size for a simple passthrough diagnostic tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity list tool, the description plus output schema is nearly complete. It lacks only an explicit note about optional parameters and a usage comparison, but nothing critical is missing for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes only a free-form 'params' object with no descriptions, and the description does not explain what, if anything, may be passed. The exact command hint suggests no parameters are needed for the default behavior, but this is not made explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Russian description 'Список failed юнитов (systemctl --failed)' clearly states the tool lists failed systemd units and names the exact command. It is specific and unambiguous, though it does not explicitly contrast with sibling diagnostic tools like service_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call it when you need the set of failed systemd units. However, it provides no explicit guidance about when to prefer it over related siblings such as service_status or system_health_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnostic_contextGet Diagnostic ContextA
Получить полный диагностический контекст со всеми компонентами и корреляциями
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 a full diagnostic context with all components and correlations, which is useful, but it doesn't describe any side effects, performance implications, or what 'full' means in terms of scope or depth. For a read-only diagnostic tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence in Russian that front-loads the main purpose. It is appropriately sized for a zero-parameter tool, though it could be slightly more informative about what 'full diagnostic context' includes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and an output schema exists, the description is mostly complete. It tells the agent what the tool returns (full diagnostic context with components and correlations). However, it doesn't clarify how this differs from get_summary or system_health_check, which could lead to choosing the wrong tool among similar siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter documentation. The description doesn't need to explain parameters, but it does clarify what the returned context contains (components and correlations), which adds meaning beyond the empty schema. Baseline 4 for zero params is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Получить' = get) and resource ('полный диагностический контекст' = full diagnostic context), and mentions it includes all components and correlations. It is clear enough to distinguish from siblings like get_summary or system_health_check, though it doesn't explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when you need a complete diagnostic context with components and correlations, but it doesn't explicitly state when to use it versus alternatives like get_summary or system_health_check. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summaryGet SummaryB
Получить сводку по статусам всех компонентов
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says the tool returns a summary; it does not disclose whether the operation is read-only, how components are aggregated, what sources are covered, or any other 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word adds meaning beyond the title, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description covers the basic purpose and does not need to explain return values. However, it leaves "all components" ambiguous and does not clarify how this tool relates to the many health/summary siblings, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. The baseline of 4 applies because the description does not need to compensate for undocumented inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: "Получить сводку по статусам всех компонентов" (get a summary of statuses of all components). This conveys what the tool returns, though it does not differentiate it from similar sibling tools like system_health_check or get_diagnostic_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. With many status- and health-related siblings, there is no indication of when get_summary is preferred or when another tool should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_checkHttp CheckC
HTTP(S) проверка: status, timings, redirects
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 states the tool checks status, timings, and redirects but does not disclose whether it makes external network requests, requires authentication, has timeouts, or is read-only. It gives no information about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single short line that front-loads the core purpose and key outputs. It wastes no words and is easy to scan. However, it is so terse that it omits necessary details, but the conciseness itself is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the generic schema and no annotations, the description is incomplete. It does not explain what parameters to provide, how the tool is invoked (e.g., target URL), or what the output structure is despite an output schema existing. An agent would struggle to call it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is a generic 'params' object with no descriptions (0% coverage). The description does not compensate by explaining what parameters are expected, such as URL, method, headers, or timeouts. An agent cannot determine how to populate the params field correctly from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: HTTP(S) check with outputs of status, timings, and redirects. It clearly identifies the resource type and what it measures, distinguishing it from other network tools like tls_check or tcp_connect. However, it lacks an explicit verb like 'perform' or 'test', and doesn't mention how to specify the target, so it's not fully explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of suitable scenarios, exclusions, or comparisons to sibling tools like tcp_connect or tls_check. An agent must infer usage solely from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k8s_deploymentsK8S DeploymentsD
Статус деплойментов
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It fails to mention whether the operation is read-only, what data it returns, or any side effects. The description provides zero behavioral context beyond the vague notion of 'status'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. A few words cannot convey the tool's purpose or usage. The content does not earn its place because it adds no value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open-ended schema and no annotations, the description is completely inadequate. It does not explain what the tool does, what parameters are accepted, or what the output format is (despite an output schema existing). An agent cannot reliably invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines a single 'params' property that is an open-ended object (additionalProperties: true) with no description. Schema coverage is 0%, so the description must compensate but does not. No meaning is added to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Статус деплойментов' ('Deployments status') is a noun phrase that essentially restates the tool name. It does not specify a verb, resource, or action, and it does not differentiate from sibling tools like k8s_pods or k8s_events. This borders on tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage 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.
k8s_describeK8S DescribeC
Describe пода (conditions, events)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Describe' implies a read-only inspection and the parenthetical at least names what the output surfaces (conditions, events). However, it does not disclose required context such as cluster access, how the pod is selected, or any side-effect/error behavior, leaving notable ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with no wasted words, which is good. But it is so sparse that it under-specifies the tool; the brevity comes at the cost of missing essential invocation details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a Kubernetes introspection tool requiring a pod identifier and possibly a namespace, this description is not sufficient. The output schema may cover return shape, but nothing explains how to construct the input, making the definition incomplete for an agent trying to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema lists only a generic free-form 'params' object with no properties and 0% schema description coverage, so the agent has no idea what keys are needed (e.g., pod name, namespace). The description does not compensate by naming any parameters, making correct invocation essentially guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb ('Describe') and a specific resource ('pod') and adds the detail that conditions and events are included. This is clear enough to distinguish the tool from sibling list-style tools like k8s_pods and k8s_events, though it does not explicitly name any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool rather than k8s_pods, k8s_events, or k8s_logs. The intended context can be inferred from the name and the word 'describe', but the description itself provides no explicit use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k8s_eventsK8S EventsC
События кластера/неймспейса (kubectl get events)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read operation via `kubectl get events`, but does not mention ordering, time windows, namespace selection, filtering, or any side effects/safety characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the resource and scope, and contains no filler. The `kubectl get events` parenthetical is an efficient orienting detail, though the overall terseness contributes to under-specification elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with an output schema present, the description does not tell the agent how to specify cluster/namespace selection in `params`, what the default scope is, or how this tool relates to neighboring k8s tools. For a tool with a free-form parameters object, this is not enough to invoke it correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines a single generic `params` object with `additionalProperties: true` and 0% schema description coverage. The description offers only a weak hint that cluster/namespace scoping is possible, but it never explains what keys or values `params` accepts, leaving invocation semantics largely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('events') and scope ('cluster/namespace') and references the canonical `kubectl get events` command, making the purpose reasonably clear. It lacks an explicit imperative verb in the main text, but the resource name distinguishes it from sibling k8s tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like k8s_pods, k8s_logs, k8s_describe, or k8s_top. It only hints at cluster/namespace scope, with no conditions, exclusions, or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k8s_logsK8S LogsD
Логи пода (kubectl logs)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior, but it only gives a noun phrase and a CLI command hint. It does not mention whether logs are fetched once or streamed, what namespace/pod context is needed, or any other operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The phrase is short, but this is under-specification rather than effective conciseness. Like the 'process' example, it is too minimal to convey how the tool should be used and does not earn its place because it conveys almost no actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Both the schema and description are nearly empty, and the sibling list contains many competing log-related tools. An agent has no way to know how to invoke this correctly, even with an output schema present, because the required inputs are completely undescribed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single opaque 'params' object with additionalProperties true and 0% schema description coverage. The description does not specify expected keys such as pod name, namespace, or container, so it completely fails to compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Логи пода (kubectl logs)' is a noun phrase that restates the tool name 'K8S Logs' and adds only a parenthetical kubectl hint. It does not describe an action like 'retrieve' or 'stream', and it does not differentiate this tool from siblings such as k8s_events or k8s_describe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of alternatives like k8s_describe, log_tail, or service_logs. No context or exclusion criteria are provided, leaving the agent to guess which of the many log-related tools is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k8s_podsK8S PodsC
Список подов с фазами и рестартами
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 implies a non-destructive listing and reveals that phases and restarts are included, but it does not mention cluster requirements, authentication, pagination, or behavior on large pod sets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short, front-loaded phrase with no filler words. It is efficient, though so terse that it sacrifices useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema covers return-value shape, but the description omits usage guidance, parameter semantics, and behavioral context. This is incomplete for a Kubernetes tool with many closely related siblings and a free-form parameters object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one generic free-form 'params' object with 0% description coverage, and the description adds no parameter semantics. An agent cannot infer how to filter by namespace, label selector, or other criteria.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('list pods') and names included output aspects (phases and restarts), which distinguishes it from Kubernetes siblings like logs, describe, and top. It is clear though it does not explicitly contrast itself with those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as k8s_deployments or k8s_top, nor on namespace/cluster context or filtering. The only usage signal is the verb 'list', which implies a read-only inventory operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k8s_topK8S TopC
Ресурсы подов (kubectl top pods)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It implies a read-style metrics query via the kubectl command, but does not state whether it aggregates data, requires metrics-server, supports namespace selection, or how it behaves when metrics are unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence and is front-loaded, but it is more under-specified than meaningfully concise. It includes no additional structure or detail to help an agent use the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The kubectl command anchor provides a basic starting point, but the tool lacks documented invocation parameters, scope, and behavioral context. With no annotations and minimal description, it is incomplete for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'params' parameter has 0% schema description coverage and the description never mentions it. An agent cannot determine what keys or flags to pass, although the parameter is optional and flexible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Ресурсы подов (kubectl top pods)' clearly identifies the resource (pods) and the operation (resource utilization via kubectl top). It is distinguishable from sibling k8s tools at a high level, though it lacks an explicit verb and does not explicitly contrast with similar tools like k8s_pods or k8s_describe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, no mention of prerequisites such as a metrics-server, and no exclusions or namespace considerations. The description only states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_diskLinux DiskD
Использование диска и файловых систем
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says 'Disk and file system usage' and does not disclose whether the tool is read-only, what it returns, whether elevated privileges are needed, or what filesystem scope it covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but it is a noun phrase rather than a structured tool definition. It is under-specified rather than concise, and a single vague phrase is not enough to earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema being present, the tool has no annotations, an opaque params bag, and a two-word domain label. An agent cannot determine what action is performed, what to pass in, or how the result relates to sibling diagnostic tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only an unconstrained 'params' object with additionalProperties true and 0% description coverage. The description does not explain what keys, filters, or formats are accepted, so an agent has no meaningful way to construct parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Disk and file system usage' identifies the resource area and narrows to usage, but it lacks a verb and does not state the exact operation (show, list, monitor). It separates the domain from memory/network tools, but not clearly from linux_host_stats or docker_system_df.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use linux_disk versus the many sibling tools such as linux_host_stats or docker_system_df. No conditions, exclusions, or alternative tool references are given, so the agent must infer usage 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.
linux_execute_commandLinux Execute CommandC
Выполнение произвольной read-only команды
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The phrase 'read-only' provides a basic safety qualifier, but because no annotations exist the description carries the full burden. It does not disclose command execution details, timeouts, shell behavior, failure modes, or how side effects are prevented despite claiming read-only for arbitrary commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and has no wasted words, but it is under-specified for a tool that executes arbitrary commands. Conciseness is achieved at the expense of necessary operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still lacks essential invocation and safety context for a high-risk arbitrary execution tool. Parameter structure, usage constraints, and expected behavior are all missing, making the definition incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description coverage and the only parameter is a generic 'params' object that can be null. The description does not explain how to pass the command, what keys are expected, or how arguments should be structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes an arbitrary read-only command, which gives a specific verb and resource. It is distinct from the specialized sibling tools like linux_host_stats or nginx_status, though it lacks examples of command formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus the many specialized sibling tools. There are no explicit conditions, exclusions, or recommendations for alternatives, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_firewallLinux FirewallC
Firewall snapshot: nftables + iptables + policy routing (read-only)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 does declare 'read-only', which is a key safety property, but it does not mention potential permission requirements or any other runtime behavior. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence containing only meaningful information: the scope of the snapshot and its read-only nature. There is no filler, redundancy, or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details do not need to be in the description, and the listed subsystems are helpful. However, with no annotations, no usage guidance, and no parameter hints, an agent still lacks some context needed to invoke the tool with full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single optional free-form 'params' object with zero property descriptions, and the description adds no information about accepted parameters or filters. Since schema description coverage is 0%, the description needed to compensate but did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies this as a firewall snapshot and explicitly enumerates nftables, iptables, and policy routing, which distinguishes it from broader siblings like linux_network. It lacks an explicit verb such as 'get' or 'show', but the term 'snapshot' makes the intended operation reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as linux_network or service_ip_filter, and no exclusions or prerequisites are stated. The agent must infer the appropriate usage from the tool name and the word 'snapshot'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_host_statsLinux Host StatsB
Получение статистики хоста: CPU, память, диск, загрузка
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. 'Получение' and the word 'statistics' imply a non-mutating read and the metric list communicates scope, but nothing is said about freshness, required privileges, or whether commands are executed on the host. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the main verb and object, followed by the metric categories. No wasted words or repeated title content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple host-stats snapshot the description is practically usable, and the presence of an output schema can cover return details. However, missing usage guidance relative to siblings and silent optional parameters keep it from being fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes a single optional, nullable 'params' object with no documented keys and 0% description coverage. The description adds no parameter information; an agent can safely make a no-argument call, but any accepted options are entirely unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear retrieval verb and names the resource with concrete metric categories: CPU, память, диск, загрузка. It is apparent this is a host-level stats tool, though it does not explicitly contrast it with linux_disk/linux_memory or other linux_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. With siblings like linux_disk, linux_memory, linux_processes, and service-specific stat tools nearby, the agent must infer selection purely from the name and metric list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_logsLinux LogsC
Чтение системных логов (journalctl, syslog)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It only says 'reading', which suggests a non-destructive operation, but it doesn't disclose whether the tool executes journalctl/syslog commands, requires elevated privileges, accepts filters, or what the output format is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase, which is concise in length but severely under-specified. It omits crucial parameter and usage semantics. This is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a free-form params schema, no annotations, and no visible output schema details, the description is incomplete. It identifies the domain but fails to explain how to invoke the tool, what parameters to use, what behavior to expect, or how the output is structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single free-form 'params' object (additionalProperties: true, 0% coverage), providing no semantic guidance. The description doesn't explain that params likely map to journalctl/syslog options or filters, so an agent cannot know what to pass in. The description adds zero value beyond the schema's generic object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('reading') and resource ('system logs'), and names concrete backends (journalctl, syslog). This clearly distinguishes it from nginx/k8s/docker log tools, though it doesn't explicitly differentiate from service_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It doesn't mention that this is for host-level system logs rather than service-specific logs, nor does it point to log_search/log_tail as potential alternatives. Usage context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_memoryLinux MemoryC
Детальная информация об использовании памяти
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. The description only says 'detailed information' – it does not state whether the operation is read-only, requires specific permissions, returns structured output, or has any side effects. It adds little beyond the tool name itself, leaving the agent without knowledge of expected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but under-specified. It lacks any structural elements like sections or bullet points that could convey usage guidance. It is not 'appropriately sized' because it fails to provide the minimal information an agent needs; it is merely a terse restatement of the tool's name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown), which may document return values, but the description does not explain the tool's place among siblings, its parameters, or any behavioral constraints. Given the tool's simplicity and the absence of annotations, an agent would need more context to invoke it correctly. The description is inadequate for confident selection and use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines a single 'params' parameter that is an arbitrary object or null, with no properties described (schema coverage 0%). The description makes no mention of what parameters can or should be passed, such as filters, time ranges, or output format. Since the schema provides no meaning and the description does not compensate, an agent cannot determine how to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Детальная информация об использовании памяти' (Detailed information about memory usage) clearly states the tool's purpose: it provides detailed memory usage data. The verb is implied ('provide' or 'get') and the resource is specific (memory). However, it does not differentiate from sibling tools like linux_host_stats or linux_processes, which may also report memory, so it loses a point for lack of distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With many linux_* siblings (e.g., linux_host_stats, linux_processes, linux_network), an agent has no basis for selecting this tool. The description offers no context about typical use cases, prerequisites, or when another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linux_networkLinux NetworkD
Сетевые интерфейсы, порты, соединения
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, what it returns, whether it requires permissions, or any side effects. 'Network interfaces, ports, connections' gives no behavioral information at all.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but not concise in a useful way—it is under-specified. The short phrase does not earn its place because it omits the action, behavior, and usage context needed for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the tool is broad ('interfaces, ports, connections') and lacks any usage context, parameter hints, or relationship to siblings. With no annotations and no usage guidance, the definition is far from complete for an agent selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single generic 'params' object (additionalProperties: true) with no internal documentation and 0% schema description coverage. The description does not explain what parameters, keys, or options are supported, leaving the agent completely uninformed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Network interfaces, ports, connections' is a noun phrase listing topics, not an action. It doesn't say what the tool does with these resources (list, get, monitor, modify). It vaguely covers the domain but does not distinguish itself from siblings like tcp_connect or linux_firewall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus any of the many network-related siblings (tcp_connect, http_check, linux_firewall, nginx_status, etc.). No conditions, prerequisites, 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.
linux_processesLinux ProcessesB
Список запущенных процессов с фильтрацией
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It conveys a read-only listing behavior ('list') and mentions filtering, which are useful traits. However, it does not disclose what filters are supported, how results are ordered, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short phrase with no filler or redundancy. It is front-loaded with the core purpose, though the brevity sacrifices useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open-ended parameter schema and lack of annotations, the one-line description is insufficient for an agent to know how to construct a valid filter. An output schema exists, so return values are covered, but filtering semantics are under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema for 'params' is an open object with additionalProperties true and zero description coverage. The description mentions 'filtering' but gives no details about filter keys, value formats, or combinations, leaving the agent to guess how to populate the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description, 'List of running processes with filtering', clearly identifies the resource (running processes) and the operation (list/filter). It is distinct enough from siblings like linux_logs or linux_network, though it does not name alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when one needs to see running processes and filter them, but it provides no explicit guidance on when to prefer it over similar tools like linux_execute_command or linux_host_stats. The usage context is implied by the noun phrase rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_labelsLog LabelsC
Список label names/values в Loki
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It only states it lists labels, without mentioning whether it returns all labels or requires filters, whether it is a read-only operation, or any rate/scope constraints. This is insufficient for a tool with an open-ended parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the tool's purpose. It is front-loaded and free of fluff, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool being simple, the description is incomplete for an agent to invoke it correctly. The 'params' parameter is undocumented, there is no usage context, and no indication of what the output schema contains. The output schema exists but the description adds no value beyond the raw purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single optional 'params' object with additionalProperties true, but the description does not explain what this parameter is for. Schema description coverage is 0%, so the description must compensate; it does not, leaving the agent unsure how to pass filters or options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('list') and the resource ('label names/values in Loki') clearly. It is distinct from sibling log tools like log_search and log_tail, but does not explicitly differentiate itself, leaving some ambiguity for an agent deciding between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where listing labels is preferable to querying logs, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_searchLog SearchC
LogQL поиск по логам за период
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It does communicate the core behavior (LogQL query over logs constrained by a period) and 'search' implies a read-only operation, but it omits any detail about default time range, result limits, error behavior, or the exact source of logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and every word contributes, but it is more terse than appropriately structured. It front-loads the key concepts yet leaves no room for the usage and parameter guidance the open schema requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an open, undocumented params object and no annotations, this description is not sufficient for a reliable invocation; an agent cannot tell what to put inside 'params' or which logs are searched. Although an output schema exists and covers return values, the selection/invocation context remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and only an open 'params' object with arbitrary allowed properties. The description hints that a LogQL expression and a period are relevant, but it never maps them to concrete parameter keys or value formats, so the agent still must guess the expected invocation shape.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (search), resource (logs), query language (LogQL), and a time scope (period), so it is more than a tautology of the title. It does not, however, say which logs are covered or how it differs from log_tail, service_logs, docker_logs, or k8s_logs, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over the many adjacent log tools, nor any mention of prerequisites or exclusions. The only usage context is the generic 'search logs per period' phrase, which leaves an agent to infer its applicability from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_tailLog TailC
Последние строки по селектору (tail)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It mentions 'tail', which implies it returns only the last lines, but it does not specify defaults like how many lines, whether it follows in real-time, or the output format. Given no annotations and a non-English description, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (a single phrase), which is concise, but it is under-specified rather than effectively concise. It lacks substantive information that would warrant a higher score; conciseness should not come at the cost of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (parameter is a free-form selector object) and no annotations, the description is incomplete. It does not explain the selector format, the expected output, or how it differs from other logging tools. An agent would struggle to invoke it correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter named 'params' that is a free-form object or null, with no property descriptions. The description mentions a 'selector' but does not explain how to structure the params object or what a valid selector looks like. With 0% schema description coverage, the description must compensate but fails to provide any parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Последние строки по селектору (tail)' which translates to 'Last lines by selector (tail)'. It conveys that it tails logs by a selector, but it is vague about what the selector is and how it is specified. It does not clearly distinguish from sibling tools like log_search or service_logs, as it lacks a specific verb-resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like log_search or service_logs. The description does not mention any exclusions or prerequisites. An agent would not know whether to use this tool for tailing versus searching logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nginx_configNginx ConfigC
Проверка конфигурации Nginx
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 states the tool performs a check but does not describe what happens on success/failure, whether it modifies state, or the output format. This is a significant gap for a tool that could return validation errors or require specific access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase, which is efficient but under-specifies the tool. It lacks the necessary detail to be genuinely helpful, so it is not true conciseness but rather under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description provides no context about the check's scope, expected inputs, or return values. With no annotations and a free-form parameter, the tool is incomplete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines a single 'params' field that is either null or an arbitrary object with additionalProperties true, and schema description coverage is 0%. The description adds no explanation of what parameters should be passed, making the tool effectively undocumented for parameter use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Проверка конфигурации Nginx' (Check Nginx configuration) provides a specific verb and resource, clearly distinguishing it from siblings like nginx_status or nginx_logs. However, it does not specify the nature of the check (e.g., syntax validation, reload test), which slightly limits clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as nginx_status or nginx_upstream. The description does not mention any conditions, prerequisites, or exclusions, leaving the agent without routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nginx_logsNginx LogsC
Чтение error и access логов Nginx
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Reading' implies a read-only operation, but it doesn't disclose any side effects, authentication requirements, rate limits, or how logs are retrieved. This is insufficient for an agent to understand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it provides minimal value. It lacks structure and doesn't front-load any useful details beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool reads Nginx logs and has an output schema, the description is incomplete. It doesn't explain how to specify log types, time ranges, or any filtering options. An agent cannot correctly invoke this tool without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single 'params' object with additionalProperties allowed, but no parameter documentation. The description doesn't mention any parameters, leaving the agent without any guidance on what to pass. Schema coverage is 0%, and the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (reading) and resource (Nginx error and access logs), which is specific and distinguishes it from nginx_status or nginx_config. However, it doesn't explicitly contrast with other log tools like log_search or linux_logs, so it's not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as log_search, log_tail, or linux_logs. The description implies it's for Nginx logs specifically, but there are no conditions or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nginx_statusNginx StatusC
Статус службы Nginx и процессов
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden, but it only offers the implicit fact that a status is reported. It does not state whether the operation is read-only, what exactly is inspected (systemd unit, processes, both), what permissions are needed, or whether any side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and contains no filler, but it is a bare noun phrase rather than a well-structured functional statement. It avoids verbosity, yet it also provides too little substance to be considered a well-crafted description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large sibling tool set and the absence of parameter and behavioral detail, this definition is not complete enough for reliable selection and invocation. The output schema can help with return values, but the description still fails to explain how this tool differs from similar Nginx/service status tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's only parameter is a generic optional 'params' object with 0% description coverageainer, and the description does not explain what can be passed. The practical impact is moderate because the parameter is optional and open-ended, but nothing compensates for the complete lack of semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource ('Nginx service and processes') and the kind of result ('status'), so the overall purpose is reasonably clear. It is a noun phrase rather than an explicit verb like 'get' or 'check,' and it does not differentiate nginx_status from nginx_stub_status or service_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of nginx_stub_status, service_status, nginx_upstream, or other related tools. There are no preconditions, exclusions, or hints about the intended diagnostic flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nginx_stub_statusNginx Stub StatusC
HTTP-проверка stub_status: active connections, requests, reading/writing/waiting
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that it performs an HTTP check, implying a read-only operation, but does not explicitly state that it is non-destructive, whether authentication is required, or what the response format looks like. It also does not mention any potential side effects. This is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the tool's purpose. It is efficient with no filler, though it may be too terse to convey essential context. It is appropriately sized for a simple status check, but could benefit from a bit more detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description lacks context on usage scenarios, especially given the existence of a sibling nginx_status that could cause confusion. It does not explain the output structure (though an output schema exists), nor does it mention any prerequisites or configuration. With no annotations and a generic parameter, the description is incomplete for an agent to confidently select and use this tool over alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single optional 'params' object with no documented properties and 0% schema description coverage. The description does not explain what this parameter could be used for (e.g., specifying a custom URL or timeout), leaving the agent with no guidance on how to invoke the tool with parameters. Since the parameter is generic and optional, the description should clarify its purpose, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'HTTP-проверка' (HTTP check) and the resource 'stub_status', listing the metrics it returns (active connections, requests, reading/writing/waiting). This identifies the tool's function, but it does not differentiate it from the sibling tool nginx_status, which likely has overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus nginx_status or other status tools. There is no mention of conditions, prerequisites, or alternatives. The agent is left to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nginx_upstreamNginx UpstreamC
Статус upstream серверов
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Status' implies a read-only operation, but nothing is said about how status is obtained, whether it requires special access, whether it contacts live servers, or what side effects might occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It is a noun phrase with no verb and conveys almost no actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large sibling context and the existence of an output schema, a one-phrase description is inadequate. It does not clarify what 'upstream servers' means in this context, how the tool is parameterized, or how it relates to nginx_status and nginx_stub_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the sole 'params' parameter is an unconstrained object/null with no schema description. The description adds no meaning about parameters, filters, or selection of specific upstream groups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Статус upstream серверов' clearly identifies the resource (Nginx upstream servers) and the intent (status), so an agent can infer this is a status read tool. However, it lacks an explicit verb and does not differentiate it from siblings like nginx_status or nginx_stub_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. There is no mention of nginx_status, nginx_stub_status, or any conditions that would select this tool over other Nginx-related commands.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_activityPg ActivityC
Полная активность: текущие запросы, состояния, ожидания
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only lists data categories. It does not state whether the operation is read-only, whether it is a point-in-time snapshot, or whether it has side effects or permission requirements. It is not misleading, but it is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short, front-loaded phrase with no filler or redundant wording. It is efficient, though slightly under-specified, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, which helps, but the lack of annotations, usage guidance, and parameter explanation leaves significant gaps. For a monitoring tool with a generic optional parameter, the description does not fully equip an agent to invoke it correctly beyond calling with no arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is a generic object/null passthrough with 0% schema description coverage, and the description does not explain it at all. An agent cannot tell whether params are needed, what keys they accept, or how they affect the returned activity view.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (PostgreSQL activity) and the specific data categories it surfaces: current queries, states, and waits. This makes it distinguishable from sibling tools like pg_connections, pg_locks, and pg_slow_queries, though it is expressed as a noun phrase rather than an explicit verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided for when to use this tool instead of pg_connections, pg_locks, or pg_slow_queries. There is no mention of typical scenarios, exclusions, or prerequisites, so an agent must infer when 'full activity' is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_connectionsPg ConnectionsC
Активные подключения к PostgreSQL
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It only states a noun phrase and does not mention whether the operation is read-only, what data is returned, potential performance impact, or any side effects. This is a significant gap for a diagnostic tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase, but this is under-specification rather than deliberate conciseness. It lacks structure or front-loading of actionable information; no sentences earn their place because there is only a title-like statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown but indicated), the description does not hint at the return format or what fields are provided. For a tool that likely lists connection details (e.g., pid, user, database, state), the agent cannot anticipate the response shape. The description is inadequate for a zero-parameter tool with a generic params object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single 'params' field with additionalProperties:true, effectively accepting any arbitrary parameters. Schema description coverage is 0%. The description does not explain what parameters are expected or how to filter/limit results, leaving the agent without any guidance on constructing a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Активные подключения к PostgreSQL' (Active connections to PostgreSQL) clearly identifies the resource and topic, distinguishing it from siblings like pg_activity or pg_locks. It implies the tool reports on connections, though it doesn't specify whether it lists, counts, or monitors them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where pg_connections is preferable to pg_activity, pg_locks, or other PostgreSQL tools, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_locksPg LocksC
Блокировки и заблокированные запросы
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses essentially nothing. It does not state that this is a read-only inspection, whether elevated privileges are required, whether querying it can be expensive or blocking, or what side effects exist. The noun phrase only weakly implies an observe-only intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but this is under-specification rather than disciplined conciseness. A single noun phrase does not 'earn its place' because it conveys almost no content; there is no front-loaded verb, no scoping statement, and no information that a longer phrasing could not have compressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema alleviates the need to explain return values, yet the definition remains incomplete where it matters most: no usage guidance, no sibling differentiation, no parameter semantics, and no behavioral disclosure. Among 60+ sibling tools, an agent has too little evidence to decide when to invoke pg_locks correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the sole 'params' property is an undocumented free-form object. The description adds zero semantic meaning about what can be passed (e.g., database filters, lock-type filters, limits). The optional parameter with a null default means the tool can be invoked without arguments, which keeps this from a 1, but any non-trivial parameter use is completely unguided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Блокировки и заблокированные запросы' ('Locks and blocked queries') is a noun phrase that restates the tool name with no verb, action, or resource detail. It gestures at added meaning (blocked queries) but never says what the tool does with locks or how it differs from siblings like pg_activity, pg_connections, or pg_stats. The Russian wording also adds language friction against an English-named tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance at all on when to reach for pg_locks versus the many sibling PostgreSQL diagnostic tools (pg_activity, pg_connections, pg_slow_queries, pg_stats, pg_replication). No conditions, no exclusions, no prerequisites are stated; the agent must guess when this tool is the right one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_replicationPg ReplicationC
Статус репликации (если настроена)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavior disclosure. It only adds the conditional 'if configured' and does not state whether the operation is read-only, what happens when replication is not configured, or whether elevated privileges are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded with no redundant phrasing. However, it is also under-specified, so the brevity is more a sign of minimalism than of well-earned concise structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status tool with an output schema and no required parameters, the description covers the basic purpose. It is not complete, though, because it omits usage context, behavioral details, and any parameter hints that an agent would need for a robust invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the only parameter is a generic free-form 'params' object with no documented properties. The description adds no meaning about what parameters this tool accepts, leaving the agent without useful guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Replication status (if configured)' clearly identifies the resource (PostgreSQL replication) and the intent (reporting status). It is distinguishable from sibling pg_* tools, though it lacks an explicit verb like 'get' or 'show'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as pg_activity or pg_stats. The only condition implied is that replication must be configured, but there is no explicit when-to-use or 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.
pg_slow_queriesPg Slow QueriesC
Медленные запросы (pg_stat_statements)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, whether it queries pg_stat_statements directly, whether it requires specific permissions, what time range or ordering is applied, or what the output contains. The parenthetical mention of pg_stat_statements hints at the data source but adds no behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise, but it is under-specified rather than efficiently informative. It is front-loaded with the topic but does not earn its place as a complete tool definition. A single noun phrase is not enough for a tool with a generic schema and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the generic schema (any object), no annotations, and no output schema details, the description is incomplete. An agent cannot know what arguments to pass, what the tool returns, or how it behaves. The output schema exists but is not shown in the provided context, so the description should still explain the tool's purpose and parameters. It does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one 'params' field that accepts any object or null, with 0% schema description coverage. The description does not explain what parameters can be passed (e.g., limit, order, time range). Since the schema is a generic passthrough, the description should compensate by documenting accepted parameters, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Медленные запросы (pg_stat_statements)' translates to 'Slow queries (pg_stat_statements)'. It identifies the resource (slow queries from pg_stat_statements) but lacks a verb and doesn't explain what the tool does with them (lists? analyzes? returns?). It is a noun phrase rather than a clear action statement, and it doesn't distinguish it from sibling tools like pg_stats or pg_activity beyond the topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The sibling list includes many PostgreSQL tools (pg_connections, pg_locks, pg_activity, pg_stats, pg_replication, pg_tables) and the description does not state when slow queries are the right choice. The only implied context is the pg_stat_statements source, which is not enough to route an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_statsPg StatsC
Статистика: таблицы, индексы, базы данных
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It only names subject areas and does not state whether the tool is read-only, what it returns, whether it has performance costs, or what privileges are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and free of filler, but it is a noun-phrase fragment rather than a structured instruction. The brevity is not well balanced because the rest of the definition does not carry the missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, a minimal generic schema, and a large set of closely related pg_* tools, this one-line description is insufficient. Even with an output schema, the agent lacks enough context to select and invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema exposes only a generic free-form 'params' object with zero property descriptions, and schema description coverage is 0%. The description does not explain how to specify tables, indexes, or databases as parameters, so the agent must guess keys and formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the subject area — statistics about tables, indexes, and databases — so it is more than a tautology. However, it lacks a verb and does not contrast with sibling pg_* tools like pg_tables or pg_activity, leaving the exact action ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose pg_stats versus the many related tools such as pg_tables, pg_activity, or pg_locks. The only implicit clue is the word 'statistics', which is not enough to form a reliable selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pg_tablesPg TablesC
Список таблиц с размерами и статистикой
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the output content (tables with sizes and statistics) but does not disclose whether the operation is read-only, any permission requirements, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, but it is under-specified rather than efficiently complete. It fits in one sentence but omits essential guidance, making it acceptable yet minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a generic parameter object and no annotations, the description should compensate with usage context and parameter guidance. It does not, leaving agents without enough information to know how to invoke it correctly beyond calling with default null parameters. The presence of an output schema helps return-value understanding but not invocation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the only parameter is a generic 'params' object with no documented properties. The description does not mention parameters at all, so it adds no meaning beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Список таблиц с размерами и статистикой' clearly states a specific verb and resource: listing tables with their sizes and statistics. This distinguishes the tool from siblings like pg_connections or pg_replication, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as pg_stats or pg_activity. There are no usage contexts, exclusions, or mentions of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prom_alertsProm AlertsC
Активные алерты (firing/pending)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden; it discloses that only active (firing/pending) alerts are returned, not resolved or historical ones. It does not explicitly state that the operation is read-only or describe side-effect-free behavior, authentication, or rate limits, but the status qualifier provides some value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded with the key scope qualifiers, containing no filler. However, it is a noun phrase rather than a complete instruction, and the extreme brevity leaves some meaning implicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param tool with an output schema, the description conveys the basic return focus, but it omits usage guidance and any parameter semantics, leaving an agent to guess about optional filtering. It is minimally adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is a generic 'params' object with 0% schema description coverage, and the description says nothing about how it is used (e.g., filters, selectors, time range). The description fails to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as Prometheus alerts and specifies the scope 'active' with statuses firing/pending, making it distinct from query/range/target siblings. It lacks an explicit verb such as 'list' or 'get', but the noun phrase is sufficiently clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over prom_query, prom_range, or prom_targets, nor any mention of when not to use it. The only implied context is that it deals with current alert states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prom_queryProm QueryC
Instant query (PromQL) к Prometheus
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'query'. It does not mention that the operation is read-only, what the response contains, or any timeout/pagination behavior, so an agent has little behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short and free of filler, which is structurally concise. However, it is under-specified rather than efficient, and the lack of any parameter or usage details means the brevity does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose only parameter is an opaque object, the description and schema together do not explain how to invoke it. The presence of an output schema reduces the need to document return values, but the input side remains essential and is left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the sole 'params' object is unconstrained. The description does not say what keys to pass, such as the PromQL expression or evaluation time, so the agent cannot construct a valid invocation from the definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an instant PromQL query ('Instant query (PromQL) к Prometheus'), giving a specific action and target resource. It partially distinguishes from prom_range by using 'instant', although it does not name sibling alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use prom_query versus prom_range, prom_alerts, or prom_targets. The word 'instant' implies but never states that this should be chosen for point-in-time queries rather than time-range queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prom_rangeProm RangeB
Range query за период (графики/история)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It indicates a read-oriented range query, but does not state that it is non-mutating, how the response is shaped, whether there are limitations on time ranges, or what happens on invalid parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short with no filler, and the key idea ('range query over a period') is front-loaded. It is a fragment rather than a complete sentence, but it is efficient for what it attempts to convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the generic schema, lack of annotations, and the conceptual complexity of a Prometheus range query, the description is not sufficient for an agent to call the tool correctly. It identifies the domain but omits essential input construction details; the output schema may help with responses, but not with building the request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema offers only a generic 'params' object with additionalProperties true and no documentation, and schema description coverage is 0%. The description adds only 'period' as a vague hint and does not specify the necessary query expression, start/end times, or step/interval fields an agent would need to construct valid parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that this is a range query over a time period, for charts/history, which is a clear resource and operation. It distinguishes itself from sibling prom_query by focusing on range/period semantics, though it lacks an explicit verb like 'returns' or 'fetches'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'за период (графики/история)' gives clear context: use this tool for time-range data, charts, or historical queries. It does not explicitly name alternatives like prom_query for instant queries, but the period/history framing makes the intended use reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prom_targetsProm TargetsC
Статус scrape targets (up/down)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states that the tool reports up/down status; it does not disclose whether parameters can filter targets, how empty results behave, whether live Prometheus access is required, or whether there are any side effects. This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it is under-specified rather than efficiently complete. It saves words at the expense of parameter and usage guidance, so it is not appropriately sized for the information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is an output schema and no required parameters, the definition is too thin for reliable invocation: the generic params object is unhelpful, no usage context is given, and the relationship to the Prometheus siblings is not clarified. An agent can guess the basic purpose but cannot fully determine correct call behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema exposes only a generic 'params' object with additionalProperties true and no descriptions, and schema description coverage is 0%. The description says nothing about parameters, so an agent has no guidance on whether or how to filter targets, and cannot infer valid param keys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Статус scrape targets (up/down)' clearly identifies Prometheus scrape target health as the focus, which separates it from siblings like prom_query, prom_range, and prom_alerts. It lacks an explicit verb ('get', 'list'), but the noun-phrase status is unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implicitly tells an agent to use this when checking whether scrape targets are up or down, but there is no explicit statement of when to use it versus prom_alerts, prom_query, or service_status. No alternatives 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.
redis_clientsRedis ClientsC
Список клиентских подключений (CLIENT LIST)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It doesn't mention that the tool executes a CLIENT LIST command (implying a read-only operation) or any side effects, performance implications, or error conditions. The agent gets minimal behavioral context beyond the literal action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the core action. It is concise and to the point, though it could add a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple list operation) and the presence of an output schema, the description is incomplete. It doesn't explain the return format beyond what the output schema provides (which is fine), but it also doesn't mention any filtering options or conditions that might affect usage. For a simple tool, more context about the data returned would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and only a generic 'params' object that can be any object or null. Since the schema provides no meaning, the description could compensate by explaining what parameters are accepted, but it doesn't. However, with a single free-form params object and no documented parameters, the baseline for a tool with zero schema coverage is low, leading to a score that reflects the schema's inadequacy rather than the description's fault.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool lists client connections, which is a clear verb-resource pair. However, it is in Russian and lacks detail on scope or filtering, and it doesn't explicitly distinguish it from siblings like redis_ping or redis_info. The purpose is adequate but not fully elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as redis_info or redis_slowlog. No context is given about typical use cases or what situations warrant checking client connections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis_infoRedis InfoC
Секции INFO: memory, clients, stats, replication
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only lists content categories and does not disclose whether the command is read-only, whether all sections are returned at once, whether sections can be selected, or whether any authentication or Redis configuration is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and wastes no words, front-loading the core content in a single phrase. However, it is a fragment rather than a complete sentence, and the brevity sacrifices explicit behavioral and parameter clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema may cover return-value structure, and there are no required parameters, but the flexible params object is left entirely unexplained. An agent still does not know whether providing params is necessary, optional, or how to specify subsets of the named sections.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the only parameter is a free-form params object with no documented properties. The description mentions section names but never explains whether or how they map to the params object, leaving the agent to guess how to customize the call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the target resource (Redis INFO) and narrows it to specific sections: memory, clients, stats, replication. This gives an agent a concrete idea of what the tool exposes, though it lacks an explicit verb such as 'returns' or 'gets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use redis_info instead of sibling tools like redis_memory, redis_clients, or redis_slowlog. The section list implies broad diagnostic use, but there is no stated condition, scenario, or excluded alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis_memoryRedis MemoryB
Анализ памяти: used, peak, fragmentation, evictions
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The metric list (used, peak, fragmentation, evictions) usefully tells the agent what output categories to expect, but the description does not disclose the data source (e.g., derived from INFO memory), that the operation is read-only, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded line with zero wasted words. The purpose is stated first, followed by a compact list of scoped metrics. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only metrics tool with an output schema present, the metric scope covers most essentials. However, the missing differentiation from redis_info/linux_memory and the silence about the params field leave noticeable gaps for an agent selecting or invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes one opaque param 'params' (additionalProperties: true, default null) at 0% coverage, and the description adds nothing about parameters. The agent is left to guess that the tool likely accepts no meaningful arguments; neither schema nor description states this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (memory) and a specific metric set (used, peak, fragmentation, evictions), which distinguishes it from the Redis siblings redis_ping, redis_clients, and redis_slowlog. The phrasing 'Анализ памяти' is a noun phrase rather than an explicit verb like 'Get', so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs redis_info, which also surfaces memory statistics, or linux_memory, which covers host-level memory. With two realistic overlapping siblings, the absence of any routing or exclusion language is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis_pingRedis PingA
Проверка доступности Redis (PING)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 the operation (PING) and its purpose (availability check), which implies a read-only, non-destructive behavior. It doesn't detail response format or error behavior, but for a simple ping tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that states the tool's purpose without waste. It is appropriately sized for a simple ping tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple availability check with an output schema present and no required params, the description is nearly complete. It could mention that it returns PONG or a similar response, but the output schema likely covers that. The simplicity of the tool lowers the bar.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the only parameter is 'params' with additionalProperties true and default null, which is a generic passthrough. The description doesn't add parameter details, but the schema is permissive and the tool likely needs no specific params. Baseline 3 is appropriate since the schema is minimal and the description doesn't need to compensate much.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Проверка доступности Redis (PING)' clearly states the tool checks Redis availability via PING, a specific verb and resource. It distinguishes itself from sibling Redis tools like redis_info or redis_clients, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking Redis availability, which is clear enough given the tool name and siblings. However, it doesn't explicitly state when to use this over other Redis tools or provide exclusions, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis_slowlogRedis SlowlogC
Slow log Redis (SLOWLOG GET)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the tool executes SLOWLOG GET, but does not state that it is a read-only operation, whether any Redis configuration affects it, how many entries are returned, or how errors are handled. This is too thin for a command-wrapper tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the core resource and command without filler. It earns its place by naming the exact Redis command. The awkward grammar and lack of context prevent a 5, but there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a generic input schema and no annotations, and while an output schema exists, the description does not explain the optional 'params' object or any tool-specific limits. For an agent to call it correctly with arbitrary SLOWLOG arguments, significant detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one undocumented 'params' field with 0% description coverage, and the description does not mention it at all. The agent cannot know what arguments (e.g., count, reset subcommands) can be passed or whether to pass them. The description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names Redis as the target and includes the exact command SLOWLOG GET, so the operation is clear. It is distinguishable from sibling tools like redis_info and redis_memory by focusing on the slow log resource. The phrasing 'Slow log Redis' is awkward, but the parenthetical removes ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource: an agent needing Redis slow log entries would select this tool. However, there is no explicit when-to-use guidance or comparison with alternatives, so the agent must infer context from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
service_ip_filterService Ip FilterC
Эффективный IP-фильтр юнита: unit-файлы + eBPF/bpftool (ground truth)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions 'ground truth' and implementation details (unit-files + eBPF/bpftool) but does not disclose key behavioral traits: what exactly it does (read-only? filter? list?), how it interacts with system state, or whether it requires elevated privileges. The agent cannot predict side effects or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one fragment) but under-specified. It does not front-load any actionable information; it is more of a label than an explanation. It could be both concise and informative, but it is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (IP filtering with eBPF) and almost no schema/annotation coverage, the description is woefully incomplete. An agent has no idea what to pass in 'params' or what to expect in return. Extra sibling tools add confusion, but the description doesn't disambiguate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage and only a generic 'params' object that accepts anything, the description is the only source of parameter meaning. However, it provides no parameter semantics at all—no mention of expected keys (e.g., unit name, IP range). Despite the schema being opaque, the description fails to clarify what 'params' should contain, so I give 4 because the description is the only possible source and it is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is an 'effective IP filter' for a unit, mentioning unit-files and eBPF/bpftool as ground truth. However, it is vague about the specific action (e.g., filter, list, check) and the resource (which unit? which IP addresses?). It does not clearly distinguish it from other network tools like linux_firewall or tcpdump_probe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention any exclusions or specific scenarios (e.g., when to prefer linux_firewall). The agent is left to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
service_logsService LogsC
Логи сервиса через journalctl -u
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure. It only reveals the implementation command (journalctl -u) and does not explain access requirements, output volume, whether it blocks or follows, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase with no filler, and the identifying detail 'journalctl -u' is present. It is efficient, though slightly too terse to carry full context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists and the tool appears simple, the description omits parameter semantics and usage context needed to choose it reliably among many log-related siblings. It is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema merely provides a generic optional 'params' object with additionalProperties true and 0% description coverage. The description hints at a unit filter via journalctl -u but does not explain how to specify the service name or which other journalctl options are accepted, leaving parameter construction ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Service logs via journalctl -u' identifies the resource (systemd service logs) and the mechanism used, which distinguishes it from sibling tools like docker_logs or k8s_logs. It lacks an explicit verb, but the intended action of retrieving logs is clear from the noun phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no alternative tools are mentioned. An agent must infer that this is for systemd services rather than for nginx, docker, kubernetes, or general linux logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
service_statusService StatusC
Статус systemd юнита (systemctl status/is-active)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It indicates a read-only status check via systemctl commands, but does not mention output format, exit codes, permission requirements, or any operational side effects. Minimal additional behavioral context is provided beyond the tool's core purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and free of fluff, which is good for conciseness. However, it is under-specified for a tool that needs parameter guidance and usage context, so the brevity detracts from overall structure and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description lacks essential context: how to select the unit, what the output represents, and how this relates to sibling tools. For a tool with one generic parameter and no annotations, this is critically incomplete and would leave an agent unsure how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the input schema exposes only a generic 'params' object with no defined properties. The description does not mention how to specify the target unit, nor does it explain what parameters to pass. The agent receives no guidance on required input structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Status of systemd unit (systemctl status/is-active)' clearly identifies the operation (checking status) and the resource (a systemd unit). It is specific enough to be distinguished from most siblings like nginx_status or failed_units, although it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as failed_units or service_logs. There is no stated context, prerequisites, or exclusion criteria, leaving the agent to infer usage solely from the phrase 'systemctl status/is-active'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_health_checkSystem Health CheckB
Провести health check всех плагинов
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action and does not disclose whether the health check is read-only, whether it runs plugin-specific commands, what side effects may occur, or how to interpret a failed health check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence with no filler, and the key verb and object are front-loaded. It is efficient but leans toward being under-specified rather than helpfully structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the basic invocation is clear: call system_health_check with no arguments and receive a result. However, with no annotations and no behavioral or usage detail, the description is only minimally adequate for a broad system-level tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics to explain; the zero-parameter baseline is 4. The phrase 'all plugins' adds scope context, and no argument details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('perform health check') and a clear target ('all plugins'). It distinguishes itself from sibling per-service status tools like nginx_status and docker_info by covering all plugins at once, though 'plugins' is not explicitly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling diagnostics such as service_status, docker_info, or get_summary. No prerequisites, exclusions, or preferred usage context are mentioned, so the agent must infer selection from the name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcp_connectTcp ConnectC
TCP connect к host:port с замером времени
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It only mentions that it connects and measures time; it does not disclose timeout behavior, error handling, whether the connection is actually opened and closed, or any side effects. This is a notable gap for a network probing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff and the key verb appears first. It is concise and readable, though its brevity crosses into under-specification for parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a network tool requiring a target host and port, the description and uninformative schema leave the invocation incomplete. The agent still lacks the parameter format and any behavioral details; an output schema exists but does not compensate for missing input semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema is a free-form object with 0% description coverage)Skip the entire reasoning section and produce only the final JSON.No annotations exist, and the schema provides no parameter details, so the description must explain how to specify host and port. It mentions 'host:port' conceptually but does not state the expected parameter structure or format, leaving an agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: establish a TCP connection to a host:port and measure the time. This is enough to distinguish it from siblings like nginx_status or dns_resolve, though it does not explicitly differentiate from tcp_connect_as.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: use it to test TCP connectivity and measure connection time. However, it gives no explicit guidance on when to choose this over related tools such as tcp_connect_as, http_check, or tls_check, and no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcp_connect_asTcp Connect AsC
TCP-проба от имени сервисного пользователя (per-uid фильтры, требует privileged_tools)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It mentions the privileged_tools permission requirement but discloses nothing else: no side effects, failure behavior, or network probe implications. It does not even state whether the operation is read-only, unlike the more explicit tcp_connect sibling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence conveys the core purpose efficiently with no filler. However, it is written in Russian while sibling descriptions appear English, which may reduce scannability for some agents, and it is arguably terse to the point of omission.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0% schema coverage, no annotations, and an open params object, the description is far too thin. The output schema exists but the input contract is entirely unspecified. An agent cannot reliably construct a valid call because the filter and identity parameters are never documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the sole parameter is an open 'params' anyOf object with additionalProperties:true — effectively undocumented. The description hints at 'per-uid filters' as the semantic content but gives no format, required fields, or example, leaving the agent to guess what the service-user identity and filters look like.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a TCP probe executed as a service user with per-uid filters, plus a privilege requirement. This is clear and implies differentiation from the sibling tcp_connect ('as a service user'), though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is a prerequisite — 'requires privileged_tools'. There is no stated when-to-use vs the sibling tcp_connect, no exclusions, and no indication of what scenario selects this tool over the apparently simpler tcp_connect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcpdump_probeTcpdump ProbeC
Короткий tcpdump-срез host:port (требует privileged_tools)
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds the prerequisite 'requires privileged_tools' and the 'short' scope, but does not explain capture behavior, duration, filters, permission implications, or output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the core scope and prerequisite front-loaded. No filler, though the brevity comes at the cost of missing details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-level packet capture tool, the description omits important operational context such as capture length, count, interface/filter options, and how results are returned. The trivial schema and lack of annotations leave the agent without enough to invoke it robustly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema is a bare wrapper around an unstructured params object, so the description's reference to host:port is the only meaningful parameter guidance. However, it does not specify the expected object shape (e.g., separate host/port keys vs. a single host:port string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a short tcpdump capture targeting host:port, which is a specific verb and resource. It is distinguishable from most siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use tcpdump_probe versus network-related siblings like tcp_connect, tcp_connect_as, or linux_network. The only context provided is the privileged_tools prerequisite, not a use-case or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tls_checkTls CheckC
TLS сертификат: expiry, chain, issuer
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the certificate aspects covered (expiry, chain, issuer) but does not disclose whether the tool performs a live network connection, whether it requires a host/port parameter, what happens on certificate errors, or what the output structure looks like. The description is a terse label rather than a behavioral contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise, but it is under-specified rather than efficiently informative. It front-loads the key aspects (expiry, chain, issuer) but omits essential usage and parameter context. It earns a middle score because it is not verbose, yet it does not fully earn its place as a standalone definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no parameter documentation, and a generic params object, the description is far from complete. The output schema exists but the description does not explain how to invoke the tool or what inputs are required. For a network diagnostic tool among many siblings, an agent needs more context to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single 'params' object with additionalProperties true and no described properties, so schema description coverage is 0%. The description does not compensate by explaining what parameters are needed (e.g., host, port, domain). An agent has no idea what to pass in the params object, making this a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'TLS сертификат: expiry, chain, issuer' identifies the resource (TLS certificate) and the aspects it covers (expiry, chain, issuer), so an agent can infer the tool checks TLS certificate details. However, it lacks a specific verb like 'check' or 'get', and it does not distinguish this from other network diagnostic tools such as http_check, tcp_connect, or dns_resolve. The title 'Tls Check' adds little beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The sibling list includes many network and diagnostic tools, but the description does not mention any conditions, prerequisites, or exclusions. An agent would have to infer that this is for TLS certificate inspection, with no help on when to prefer it over http_check or tcp_connect.
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.
59 tool updates
v1.0.0- First observed
boot_analysis - First observed
dns_resolve - First observed
docker_containers - First observed
docker_events - First observed
docker_info - First observed
docker_logs - First observed
docker_prune - First observed
docker_stats - First observed
docker_system_df - First observed
failed_units - First observed
get_diagnostic_context - First observed
get_summary - First observed
http_check - First observed
k8s_deployments - First observed
k8s_describe - First observed
k8s_events - First observed
k8s_logs - First observed
k8s_pods - First observed
k8s_top - First observed
linux_disk - First observed
linux_execute_command - First observed
linux_firewall - First observed
linux_host_stats - First observed
linux_logs - First observed
linux_memory - First observed
linux_network - First observed
linux_processes - First observed
log_labels - First observed
log_search - First observed
log_tail - First observed
nginx_config - First observed
nginx_logs - First observed
nginx_status - First observed
nginx_stub_status - First observed
nginx_upstream - First observed
pg_activity - First observed
pg_connections - First observed
pg_locks - First observed
pg_replication - First observed
pg_slow_queries - First observed
pg_stats - First observed
pg_tables - First observed
prom_alerts - First observed
prom_query - First observed
prom_range - First observed
prom_targets - First observed
redis_clients - First observed
redis_info - First observed
redis_memory - First observed
redis_ping - First observed
redis_slowlog - First observed
service_ip_filter - First observed
service_logs - First observed
service_status - First observed
system_health_check - First observed
tcp_connect - First observed
tcp_connect_as - First observed
tcpdump_probe - First observed
tls_check
TDQS
Scored across 59 tools
Most tools target distinct resources (nginx, docker, k8s, pg, redis), but there is notable overlap among health/summary tools: get_diagnostic_context, get_summary, and system_health_check all provide overall status and could be confused. Additionally, nginx_status and nginx_stub_status are similar in name despite different purposes.
Names are all snake_case and generally follow a logical pattern with domain prefixes (nginx_*, docker_*, k8s_*, linux_*, pg_*, redis_*). However, a few tools like http_check, tls_check, tcp_connect, and get_diagnostic_context deviate from the prefix convention, creating minor inconsistency.
59 tools is a very large surface for an MCP server, far exceeding the 25+ threshold that typically feels heavy. While the breadth is understandable for multi-stack diagnostics, many niche tools (e.g., tcpdump_probe, redis_slowlog) could be consolidated or exposed via a more parameterized interface.
The tool set covers an impressively broad range of diagnostic domains: Nginx, systemd, Docker, network, Prometheus, Loki, Kubernetes, Linux, PostgreSQL, and Redis. It includes health checks, summaries, and detailed metrics, though there are minor gaps like Docker inspect (partially covered by docker_info) and no write/action tools beyond docker_prune.
Maintenance
Related MCP Connectors
Hosted MCP server for PostgreSQL diagnostics: slow queries, missing indexes, connection pressure.
Gain visibility into the performance, availability, and health of your apps and infrastructure.
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
- AgentCatOAuthcom.agentcat
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Linux system operations via MCP, including CPU, memory, processes, storage, filesystem, hardware, network, monitoring, and logs.9MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to monitor and manage Linux infrastructure including services, logs, processes, disk, memory, ports, cron, nginx, Docker, and system health checks via the Model Context Protocol.10MIT
- AlicenseAqualityAmaintenanceA Linux system monitoring MCP server that provides real-time information on CPU, memory, disk, network, processes, Docker, security, and more via MCP tools.26691MIT
- AlicenseBqualityBmaintenanceEnables explaining Linux incidents over SSH with baseline-aware MCP tooling, including live diagnostics, SQLite history, and review-first workflows.10150 npm2MIT