About io.github.carloshpdoc/memorydetective
io.github.carloshpdoc/memorydetective is an MCP server published by carloshpdoc in the Developer Tools category: iOS leak/perf debugging via MCP: memgraph cycles, .trace analysis, SourceKit-LSP bridging.
The repository has 14 stars and 0 forks, with the last commit 5 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
claude mcp add io-github-carloshpdoc-memorydetective -- npx -y memorydetectivenpx -y memorydetectiveThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (15)
analyzeAbandonedMemoryDiff two `.memgraph` snapshots on heap reference-tree class counts (not cycle list) and classify each grown class as `kvo-observer-orphaned`, `notificationcenter-observer-leaked`, `cache-too-aggressive`, `singleton-retains-payload`, or `unknown-growth`. Surfaces the family of bugs `leaks(1)` reports as `leakCount: 0` because no strict cycle exists. v1.10 adds `actionableGrowth[]` + `actionableShrinkage[]` (framework-noise-filtered views) and supports `outputFormat: "verify-fix-table"` which emits a focused Class \
Parameters not published.
analyzeAllocationsParse `xctrace` `allocations` schema; return per-category aggregates (cumulative bytes, allocation count, lifecycle = transient/persistent/mixed) and top allocators.
Parameters not published.
analyzeAnimationHitchesParse `xctrace` `animation-hitches` schema; report by-type counts and how many hitches crossed Apple's user-perceptible 100ms threshold.
Parameters not published.
analyzeAppLaunchParse `xctrace` `app-launch` schema; return cold/warm launch type + per-phase breakdown (process-creation, dyld-init, ObjC-init, AppDelegate, first-frame).
Parameters not published.
analyzeHangsParse `xctrace` `potential-hangs` schema; return Hang vs Microhang counts + top N longest. Pass `topFramesByHangStartNs` (typically from a chained `analyzeTimeProfile` correlation) to enrich each top hang with `mainThreadViolations[]` classifying the blocker as `sync-io`, `db-lock`, `network`, or `lock-contention`.
Parameters not published.
analyzeMemgraphRun `leaks` against a `.memgraph` and return summary (totals, ROOT CYCLE blocks, plain-English diagnosis).
Parameters not published.
analyzeTimeProfileParse `xctrace` `time-profile` schema; return top symbols by sample count. Reports SIGSEGV with workarounds when xctrace can't symbolicate.
Parameters not published.
classifyCycleMatch each ROOT CYCLE against a built-in catalog of **36 named antipatterns** (SwiftUI / Combine / Concurrency / UIKit / Core Animation / Core Data / Coordinator / RxSwift / Realm) with confidence + textual `fixHint` + `staticAnalysisHint` (which SwiftLint rule complements this, or explicit gap) + `fixTemplate` (Swift before/after snippet).
Parameters not published.
countAliveCount instances by class. Provide `className` for one number, or omit for top-N most-leaked classes. v1.17: configurable noise filter (`excludeFrameworkNoise`, `additionalNoisePatterns`, `unsuppressClassPatterns`, `noiseAuditMode`) so the actionable view is tunable per app. Variable-size classes report `instanceSizeBytesMin / Max / Median` (was first-observed value pre-v1.17).
Parameters not published.
diffMemgraphsCompare two `.memgraph` snapshots: total deltas + class-count changes + cycles new/gone/persisted.
Parameters not published.
Show all 15 tools
findCyclesExtract just the ROOT CYCLE blocks as flattened chains, with optional `className` substring filter.
Parameters not published.
findRetainers"Who is keeping `<class>` alive?". Returns retain chain paths from a top-level node down to the match.
Parameters not published.
logShowOne-shot query of macOS unified logging via `log show --style compact` with predicate / process / subsystem filters. Returns parsed entries (timestamp, type, process, subsystem, category, message).
Parameters not published.
reachableFromCycleCycle-scoped reachability. "How many `<X>` instances are reachable from the cycle rooted at `<Y>`?". Distinguishes the actual culprit from its retained dependencies.
Parameters not published.
verifyFixCycle-semantic diff: per-pattern PASS/PARTIAL/FAIL verdict + bytes freed. CI-gateable. `expectedAliveClasses` whitelist (v1.14) carves out singletons / caches / OS-retained windows so they do not vote FAIL; v1.17 extends each entry to per-mode matching (`{ pattern, mode: "exact" \
Parameters not published.
Ask AI
Ask AI about io.github.carloshpdoc/memorydetective
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.