Skip to main content
Glama
carloshpdoc

memorydetective

Analyze leaks as a time series (xctrace Leaks instrument)

analyzeLeakTimeline

Parse a Leaks .trace file to get a timeline of leak events per class, showing first-seen timestamp, peak instance count, and peak bytes to identify when leaks appear in the recording.

Instructions

[mg.trace] Parse the leaks schema from a .trace recorded with a Leaks template. Distinct from leaks(1) CLI (snapshot): this is a time series of leak events captured throughout the recording. Returns per-class first-seen-at timestamp, peak instance count, peak bytes, event count. Useful for answering 'when in the timeline did the leak appear?' which the snapshot CLI cannot. v1.15+.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tracePathYesAbsolute path to a `.trace` bundle recorded with a Leaks template.
topNNoReturn the top N leaked classes ranked by peak instance count (default 10).
outputFormatNoResponse format. Omitted or `json` (default, preserves v1.8 behavior) returns JSON.stringify of the result. `markdown` renders a human-readable view of the same data. `both` returns both content items in one response, so a client can display markdown to the user and parse JSON for the agent loop without a second call. `verify-fix-table` (v1.10, applies to `analyzeAbandonedMemory` and `diffMemgraphs`) emits a focused 4-column markdown comparison table (Class | Before | After | Delta) of the actionable rows; other tools fall back to `markdown` for this value.
Behavior3/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It clarifies that the tool parses a trace file and returns analysis results, implying a read-only operation. However, it does not explicitly address error handling (e.g., invalid trace path, missing leaks data), performance implications, or required permissions. The behavioral information is adequate but not comprehensive.

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 description is exceptionally concise: three sentences plus a version note. It front-loads the core action ('Parse the leaks schema from a .trace'), immediately distinguishes from alternatives, lists outputs, and gives a concrete use case. Every sentence is essential and no information is repeated or 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?

Given the tool has 3 parameters, no output schema, and no annotations, the description provides a solid overview of purpose, output, and differentiation. It describes what the tool returns (four specific metrics), which partially compensates for the missing output schema. However, it does not cover possible errors, performance when processing large traces, or the exact format of timestamps, leaving minor gaps.

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 each parameter. The description adds value by explaining the return shape (per-class first-seen-at, peak counts), which helps contextualize the 'topN' parameter. However, it does not elaborate further on the parameters beyond their schema descriptions. With full schema coverage, this is a baseline score.

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 clearly states it parses the 'leaks' schema from a .trace recorded with a Leaks template, distinguishes it from the leaks(1) CLI snapshot by emphasizing it's a time series, and specifies the exact outputs (per-class first-seen-at timestamp, peak instance count, peak bytes, event count). This makes the purpose unambiguous and distinguishes it from sibling tools like analyzeAbandonedMemory or detectLeaksInXCTest.

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?

The description explicitly contrasts this tool with the leaks(1) CLI snapshot and provides a concrete use case: answering 'when in the timeline did the leak appear?' which the snapshot cannot. However, it does not explicitly state when not to use this tool or compare it to sibling tools within the same suite (e.g., analyzeMemgraph), but the context is sufficient for an AI agent to infer appropriate usage.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carloshpdoc/memorydetective'

If you have feedback or need assistance with the MCP directory API, please join our Discord server