Automation / MCP server

A logcat MCP server that lets AI assistants read your Android log.

The control server built into Indagium turns an open trace into something an AI assistant can query directly: narrow it with the same filters you'd use by hand, pull crash sites, and cite the exact lines behind a claim. It's how to analyze logcat with AI while the server itself stays on your machine — it is off by default, bound to 127.0.0.1, and unlocked only with a bearer token you copy yourself.

Indagium's AI panel investigating an open Android log tab.
The in-app AI panel calls the same tools an external MCP client would.

A local automation surface

Built for a client, not a cloud service.

The control server is part of the desktop app itself — there's nothing extra to install, and nothing reachable outside your machine unless you turn it on.

01

Speaks plain MCP

Streamable HTTP, the transport LM Studio, Claude Code, Codex, and custom tooling already support. Point a client at a URL — no Node.js, npm, or repo checkout.

02

Off by default

Never runs in a packaged build until you switch it on: Settings → Automation → MCP control server → On. A dev run enables it with an environment variable instead.

03

Loopback and a token

Binds to 127.0.0.1 on a configurable port (8991 by default). Every request also needs the bearer token shown by Connection info… in Settings.

04

A REST escape hatch

The same server exposes a plain JSON/REST surface on the same port for quick curl or scripting, without an MCP client in the middle.

Connect a client

Paste a URL, not a config file.

Every request needs the bearer token from Connection info… in Settings, plus the endpoint at http://127.0.0.1:8991/mcp (swap the port if you changed it). Claude Code adds it with one command: claude mcp add --transport http indagium http://127.0.0.1:8991/mcp. LM Studio and Cursor-style clients take the same URL as an mcp.json entry with the token as an Authorization: Bearer header; Codex takes it as a streamable-HTTP server in ~/.codex/config.toml.

See what a client can search
Indagium's filter panel — the same filters an MCP client reads and sets.
get_filter and set_filter read and change exactly this panel.

What's in the catalogue

Close to 60 tools, five groups.

AVAILABLE_METHODS.md is the version-controlled map; the running app's tools/list response is the authoritative schema. Almost every read is scoped to a tabId — start with list_tabs rather than a filename.

GroupExample tools
Read logs, narrow evidencelist_tabs, get_visible_lines, get_crash_sites, get_log_composition
Filters, sequences, navigationget_filter/set_filter, add_sequence, get_sequence_summary, toggle_group
Notes, exports, follow-upadd_text_note, get_annotation_blocks, export_analysis, export_filtered_log
Source, cases, videoget_source_declarations, search_similar_cases, get_video_frame
Diagramsbuild_sequence_diagram

How an agent actually investigates

Narrow first, read second.

The analysis playbook that ships with the server teaches a client the same discipline a human investigator uses on a file too large to read end to end.

  1. 01

    Start at the anchors

    get_crash_sites first — exceptions and ANRs are the highest-signal anchors — then get_issue_description if the user reported a symptom.

  2. 02

    Narrow before reading

    set_filter by tag, level, or PID, then get_visible_lines in roughly 200–500-line pages instead of the whole file.

  3. 03

    Corroborate without losing the filter

    get_line_context pulls raw surrounding rows regardless of the active filter or folding; get_log_composition ranks a view's repeats so the noise can be filtered out next.

  4. 04

    Leave the trail

    add_log_note anchored to the deciding lines, add_text_note for the narrative — so the notes stand alone without you re-explaining them later.

Your assistant, your choice

Local model or hosted — you decide.

Indagium doesn't bundle or require a specific AI vendor. The in-app AI panel's default profile is an OpenAI-compatible Chat Completions endpoint, so a local LM Studio server works out of the box with a tool-capable model; switch the provider to OpenAI, Anthropic, Codex, Claude Code, or another compatible endpoint when you'd rather use a hosted model. An external MCP client reaches the same tool surface over the control server instead of the in-app panel, so the choice of who reads your log — a model on your machine or one in the cloud — stays yours either way.

Questions

Logcat MCP server FAQ

Is the MCP server on by default?

No. It's off by default and never runs in a packaged build until you turn it on — Settings → Automation → MCP control server → On for an installed app, or an environment variable for a dev run.

Can another machine on the network connect to it?

No. The server binds to 127.0.0.1 (loopback) only, and every request also needs the bearer token shown by Connection info… in Settings, so nothing is reachable from the network even while it's on.

Does using AI mean my log leaves my machine?

Not by itself. The MCP server and the in-app AI panel call the same local tools either way; whether the log content reaches a cloud API depends on which AI provider you connect — point a local LM Studio server at it and nothing has to leave the machine, or choose Anthropic, OpenAI, Codex, or another provider and the tool results become part of that provider's conversation.

How many tools does it expose?

AVAILABLE_METHODS.md documents close to 60 tools across five groups — reading and narrowing logs, filters and sequences, notes and exports, source/case/video, and diagrams. The running app's tools/list response is the authoritative schema for exact parameters.

Keep going

The log is one client away from a second reader.