Skip to main content
Glama
xzaleksey

open-mobile-mcp

by xzaleksey

get_network_logs

Retrieve network-related logs from Android or iOS devices to diagnose connectivity issues. Filter by platform-specific tags like ReactNativeJS or OkHttp for targeted debugging.

Instructions

Pull network-related logs from the device. For Android, filters logcat. For iOS, filters the internal log capture buffer (must be running via manage_platform_logs or manage_bundler). For Expo / React Native apps, all console.log output (including fetchApi network traces) is emitted under the 'ReactNativeJS' logcat tag — use filter 'ReactNativeJS' or leave default. For native Android HTTP clients use 'OkHttp'. Note: a recurring warning 'ReconnectingWebSocket: Couldn't connect to ws://:8081/inspector/network' is harmless — it means Metro bundler's DevTools WebSocket is not reachable from the device (Metro not running or port 8081 blocked). The app still works; start Metro via 'npx expo start' or 'npx react-native start' on the same network to silence it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filterNoRegex matched against logcat lines (case-insensitive). Expo/RN: 'ReactNativeJS' (all console.log including fetchApi traces). Native Android: 'OkHttp', 'Volley', 'CRONET'. Default: 'ReactNativeJS|OkHttp|Volley|CRONET'
deviceIdYes
platformNoandroid
tailLengthNoNumber of raw log lines to scan before filtering (default 1000). Increase if recent logs have rolled out of the buffer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.4

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations present, the description carries the disclosure burden and does so well: it warns about the harmless ReconnectingWebSocket error, explains why it occurs, and clarifies that the app still works. It also discloses the prerequisite that iOS log capture must already be running. It does not discuss return format or buffering limits, but the operational caveats are substantial.

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 description is long but not padded: every sentence adds platform behavior, a filter recommendation, or a troubleshooting warning. It is front-loaded with the core purpose and then branches into operational detail. A light restructuring into bullets could tighten it, but no sentence 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?

For a 4-parameter log tool with no output schema, the description covers platform differences, necessary preconditions, default filter behavior, and a common false-positive error. It could also state the output format or empty-result behavior, but the essentials an agent needs to select and call the tool correctly are present.

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 descriptions cover filter and tailLength, and the description reinforces and expands on both: it gives concrete filter aliases ('ReactNativeJS', 'OkHttp', 'Volley', 'CRONET') and the buffer-rollover hint for tailLength. deviceId and platform remain undocumented in prose but are self-explanatory from the schema, so the description compensates for the 50% schema coverage.

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?

The description opens with a specific verb and resource ('Pull network-related logs') and then gives platform-specific meaning, which clearly separates it from sibling tools like get_bundler_logs or stream_errors. It leaves no doubt about what is returned: log lines tied to network activity.

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?

It provides concrete usage context: iOS requires manage_platform_logs/manage_bundler to be running, Android reads logcat, and it recommends specific filter values per framework. It does not explicitly list exclusions or name alternative sibling tools, but the platform-scoped guidance is enough for an agent to know when to invoke it.

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