Skip to main content
Glama

Resource use of app-center Docker apps

nas_docker_app_usage
Read-only

Reports CPU, memory, network, and disk usage rates for Docker-based apps installed from the NAS app center, keyed by app ID.

Instructions

Report CPU, memory, network and disk rates for Docker-based apps installed from the app center (data.usages, keyed by app ID). It only covers app-center apps: a plain container or a self-made Compose project, or a misspelled ID, comes back as all zeros without an error, so zeros do not mean idle. App IDs are the application field of nas_docker_containers. For any container's CPU and memory use nas_docker_containers instead. Rates are strings in bytes per second.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "nas_docker_app_usage"
  }
}

Input Schema

NameRequiredDescriptionDefault
app_idsNoApp IDs; omit for all app-center apps.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive and openWorld, and the description adds context the annotations cannot: invalid or non-app-center IDs return all zeros without an error, so zeros do not mean idle. It also discloses that returned rates are strings in bytes per second, which matters since there is no output schema. Rates format is covered, though pagination or rate limits are not applicable here.

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

Conciseness5/5

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

Four sentences, each carrying distinct information: scope, failure mode, ID provenance, alternative tool, and units. Nothing is repeated from the annotations or schema, and scope is front-loaded.

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

Completeness5/5

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

For a single-parameter read tool with no output schema, the description covers what is measured, which apps qualify, the silent-zero failure mode, how to obtain IDs, the fallback tool, and the return unit format. Nothing an agent needs in order to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and there is a single optional parameter, so baseline is 3; however the description adds meaning beyond the schema by explaining that app IDs are the application field of nas_docker_containers, telling the agent where to source valid values.

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

Purpose5/5

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

States a specific verb and resource: report CPU, memory, network and disk rates for Docker-based apps installed from the app center, keyed by app ID. It explicitly distinguishes itself from the sibling nas_docker_containers, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives both the positive condition (only app-center apps) and the exclusion plus alternative (a plain container or self-made Compose project, or for any container's CPU/memory, use nas_docker_containers). When-not guidance is unusually explicit.

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