Skip to main content
Glama

Read an app's or agent's recent logs

get_logs
Read-onlyIdempotent

Read an app's or agent's recent log lines, oldest first: time, source (app or agent for the service's own output, valet for control-plane lines), process, level, and message, plus any structured attributes. It reads what Valet has buffered and returns; it never follows. Only the newest 1000 buffered lines are searched, so a busy service can push older lines out of reach, and the answer says truncated when it cut lines off or when older lines may exist beyond what it searched. Narrow by since (a duration such as 15m, 6h, or 1d; default 15m, at most 24h), by process (a process type such as web, or one process such as web.1), and by limit (default 200, at most 1000, the newest matching lines). A website has no processes and no logs, so it is refused. Log lines are what the service printed, and a service can print a secret or a person's data: quote only what the question needs, and never repeat a credential you find. Attributes with credential-like names are dropped, but message text is returned as printed. Requires connecting a Valet account.

Input Schema

NameRequiredDescriptionDefault
kindNoThe kind you mean. Omit to read whatever the name holds; give it to have a name holding another kind refused.
nameYesRequired. The app's or agent's name.
limitNoThe most lines to return, newest first kept. Default 200; at most 1000.
sinceNoHow far back to read: a whole number and a unit, such as 30s, 15m, 6h, or 1d. Default 15m; at most 24h.
processNoOnly lines from this process type, such as web, or this one process, such as web.1. Omit to read every process.
org_nameNoThe Valet organization it belongs to. Omit to use the organization the account joined first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context on top: it searches only the newest 1000 buffered lines so older lines can be evicted, it flags 'truncated' when it cuts off or older lines may exist, attributes with credential-like names are dropped while message text is returned verbatim, and a Valet account connection is required. That is unusually rich disclosure beyond the structured safety hints.

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

Conciseness4/5

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

The definition is front-loaded with the verb, resource, and return shape, and every clause carries usable information (buffer window, truncation flag, redaction policy, refusal of websites). It is a single dense paragraph with stacked clauses, which is slightly harder to scan than it needs to be, but there is little genuine waste.

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

Completeness5/5

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

There is no output schema, yet the description fully specifies the return shape (time, source, process, level, message, structured attributes, plus a truncated marker) and the source semantics (app/agent for service output, valet for control-plane lines). Combined with annotations covering the safety profile and a fully documented schema, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter, including enum, defaults, and max values for kind, since, and limit. The description largely restates those bounds ('default 15m, at most 24h'; 'default 200, at most 1000') and adds only the qualifier that limit returns the newest matching lines, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('Read an app's or agent's recent log lines') and immediately enumerates the returned fields (time, source, process, level, message, attributes). It also declares scope and ordering ('oldest first'), which no sibling tool shares, so the agent can distinguish it from get_build, get_service, or get_session without opening a schema.

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

Usage Guidelines4/5

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

Gives concrete context for use: it reads the buffered window and 'never follows' (ruling out tailing), a website is refused, and narrowing is done via since/process/limit with stated defaults and caps. It does not name any alternative tool, but no sibling competes for this purpose, so the guidance is effectively complete without exclusions.

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