Skip to main content
Glama
murzirius

VPS-Guardian-MCP

by murzirius

read_service_logs

Retrieve recent log lines for any service or Docker container and filter them by keyword to identify errors or denied requests.

Instructions

Safely fetch and optionally filter recent log lines for a service or Docker container.

Args: service_name: Target unit (e.g. 'nginx', 'systemd:cron', 'docker:my_container'). lines_count: Number of recent lines to retrieve (default: 50, maximum: 1000). grep_filter: Optional case-insensitive keyword to filter lines (e.g. 'ERROR', '403', 'denied').

Returns: JSON string containing the extracted log lines and matching statistics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
grep_filterNo
lines_countNo
service_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.1

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burder. It conveys read-only intent with 'safely fetch' and reveals the return format as a JSON string with log lines and matching statistics. However, it does not disclose limits, error behavior, or access requirements beyond the line_count cap mentioned in the args.

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

Conciseness5/5

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

The structure is clean: a one-sentence overview, an Args list with per-parameter details, and a Returns statement. Every sentence provides useful information and no filler. The key capability 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 three-parameter read tool, the description is self-contained. It covers all parameters with defaults, examples, and constraints, and explains the output shape. Since an output schema exists, the explicit return description is a bonus. Nothing needed to invoke the tool correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates by documenting all three parameters with meaningful detail: service_name examples ('nginx', 'systemd:cron', 'docker:my_container'), lines_count default 50 and max 1000, and grep_filter as optional and case-insensitive. This far exceeds the bare schema.

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

Purpose4/5

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

The description states a precise verb and resource: 'fetch and optionally filter recent log lines for a service or Docker container.' This clearly communicates the tool's function. It does not explicitly differentiate it from the sibling tool get_docker_container_logs, which may overlap in the Docker case.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to retrieve recent logs, optionally filtered) but provides no explicit guidance about when to choose this over related siblings like get_docker_container_logs or check_service_status. No exclusion or alternative-routing context is included.

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