Skip to main content
Glama

logcat

Reads an allowed dev app's device logs, including crashed-process lines, returning only new lines since the previous call by default.

Instructions

Read the log of an allowed dev app (including lines of crashed earlier processes). By default returns only lines that are new since the previous call with the same filters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
grepNoCase-insensitive regex applied to each line
levelNoMinimum priority: V D I W E F
serialNoadb serial; optional when exactly one device is connected
packageYes
max_linesNo
since_lastNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose two genuinely non-obvious traits: crashed earlier processes' lines are included, and the default is incremental (new lines since the previous call with the same filters). It does not disclose first-call behavior when since_last=true, truncation via max_lines defaulting to 200, or whether the call blocks.

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?

Two sentences, front-loaded with the core action, followed by the non-obvious default. No wasted clauses, though the incremental-behavior sentence could name the since_last parameter to link description to schema.

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

Completeness3/5

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

A six-parameter read tool with no annotations and no output schema. The description covers scope and the incremental default, but leaves gaps an agent needs: return line format, what happens on the first call, truncation behavior at max_lines, and prerequisites on the target app.

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 coverage is 50% (grep, level, serial documented; package, max_lines, since_last undocumented). The description compensates for since_last by explaining the incremental default and the 'same filters' scoping, but adds nothing about package, max_lines truncation, or the device serial resolution.

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 and resource: 'Read the log of an allowed dev app'. The parenthetical about crashed earlier processes adds scope detail, and 'allowed dev app' signals a permission boundary. It does not explicitly distinguish itself from siblings like list_crashes/get_crash, which are the closest alternatives.

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?

Usage is implied (inspect app log output) but there is no explicit statement of when to prefer this over list_crashes, get_crash, or read_all. The 'allowed dev app' phrasing hints at a precondition without spelling out the requirement to have the app installed/launched.

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