Skip to main content
Glama

Server overview

get_server_overview
Read-onlyIdempotent

Returns a snapshot of one server: CPU %, 1-minute load average and core count, memory %, disk usage per mount, uptime, the five processes using the most CPU, and the number of detected services and apps.

Input Schema

NameRequiredDescriptionDefault
agent_idYesThe server/agent UUID to query.

Output Schema

NameRequiredDescriptionDefault
noteNoPresent when the server has sent no heartbeat yet.
disksNoDisk usage per mount.
errorNoPresent only when the call failed: why, in plain English (unknown server, server from another workspace, not a Kubernetes cluster).
onlineNoWhether a heartbeat arrived recently.
hostnameNoHostname.
app_countNoNumber of detected applications.
cpu_coresNoCPU cores.
databasesNo
cpu_percentNoCPU usage %, latest heartbeat.
load_avg_1mNo1-minute load average.
mem_percentNoMemory usage %.
service_countNoNumber of detected services.
uptime_secondsNoSeconds since boot.
cpu_reality_checkNoPresent when cpu_percent and the load average disagree; explains which to trust.
top_processes_by_cpuNoFive processes using the most CPU.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "app_count": {
      +      "description": "Number of detected applications.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "cpu_cores": {
      +      "description": "CPU cores.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "cpu_percent": {
      +      "description": "CPU usage %, latest heartbeat.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "cpu_reality_check": {
      +      "description": "Present when cpu_percent and the load average disagree; explains which to trust.",
      +      "type": "string"
      +    },
      +    "databases": {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "disks": {
      +      "description": "Disk usage per mount.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "mount": {
      +            "description": "Mount point.",
      +            "type": "string"
      +          },
      +          "percent": {
      +            "description": "Disk usage %.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "error": {
      +      "description": "Present only when the call failed: why, in plain English (unknown server, server from another workspace, not a Kubernetes cluster).",
      +      "type": "string"
      +    },
      +    "hostname": {
      +      "description": "Hostname.",
      +      "type": "string"
      +    },
      +    "load_avg_1m": {
      +      "description": "1-minute load average.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "mem_percent": {
      +      "description": "Memory usage %.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "description": "Present when the server has sent no heartbeat yet.",
      +      "type": "string"
      +    },
      +    "online": {
      +      "description": "Whether a heartbeat arrived recently.",
      +      "type": "boolean"
      +    },
      +    "service_count": {
      +      "description": "Number of detected services.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "top_processes_by_cpu": {
      +      "description": "Five processes using the most CPU.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "cpu_percent": {
      +            "description": "CPU %.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "mem_mb": {
      +            "description": "Resident memory, MB.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "description": "Process name.",
      +            "type": "string"
      +          },
      +          "pid": {
      +            "description": "PID.",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "uptime_seconds": {
      +      "description": "Seconds since boot.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds scope-of-return context but nothing beyond annotations on behavior — no indication of snapshot freshness, caching, cost, or permissions needed to query a remote agent.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the return contents are listed compactly. The enumeration is long but each item is genuinely selective information, so little is wasted.

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

Completeness4/5

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

An output schema exists, so the return-shape enumeration is largely reinforcing rather than required, and annotations carry the safety profile. The remaining gap is routing guidance: nothing tells the agent when to prefer this over get_kubernetes_snapshot, get_services, or get_log_summary.

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

Parameters3/5

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

Only one parameter (agent_id) exists and the schema documents it at 100% coverage ('The server/agent UUID to query.'). The description adds no additional parameter semantics, so the schema-description baseline of 3 applies.

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

Purpose4/5

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

States a specific verb (get) and resource (one server's overview) and itemizes exactly what the snapshot contains — CPU %, load average, core count, memory %, per-mount disk usage, uptime, top-5 CPU processes, and service/app counts. This distinguishes it in substance from siblings like get_kubernetes_snapshot or get_services, though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

There is no explicit when-to-use or when-not-to-use statement. Usage is only implied by the enumerated contents (reach for this when you need a quick system-health snapshot of a single server), and the closely related siblings get_kubernetes_snapshot, get_services, and get_recommendations are not addressed.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources