Memorydetective
概要
作者による説明(英語の原文)
iOS leak/perf debugging via MCP: memgraph cycles, .trace analysis, SourceKit-LSP bridging.
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
チェック 2/2 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
パソコン版 Claude アプリの設定ファイルを開く
SettingsDeveloperEdit Config
この設定を貼り付けて保存
{ "mcpServers": { "memorydetective": { "command": "npx", "args": [ "-y", "memorydetective" ] } } }Claude を終了してもう一度開く
試してみる
Memorydetective を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Memorydetective を使っていると言うか、回答に Memorydetective のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Memorydetective につなげません
Memorydetective はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
代わりにできること
A · Memorydetective につなげるアプリを使う
- 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
- 先にパソコンへ Node.js を入れてください(1 回だけ)
- 先にパソコンへ Node.js を入れてください(1 回だけ)
- 先にパソコンへ Node.js を入れてください(1 回だけ)
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
- Sentry✓ ChatGPT
- Front-End Checklist✓ ChatGPT
- Compiler Explorer✓ ChatGPT
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
ターミナルを開く
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
このコマンドを貼り付けて Enter
claude mcp add memorydetective -- npx -y memorydetectiveClaude Code で /mcp と入力
Memorydetective が一覧にあり、接続済みと表示されれば OK です
試してみる
Memorydetective を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が Memorydetective を使っていると言うか、回答に Memorydetective のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
Cursor の AI チャットを Agent モードで開く
試してみる
Memorydetective を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が Memorydetective を使っていると言うか、回答に Memorydetective のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
VS Code の AI チャットを Agent モードで開く
試してみる
Memorydetective を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が Memorydetective を使っていると言うか、回答に Memorydetective のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
開発者向け:ターミナルのコマンドと JSON 設定
パソコンにインストール
Claude Code
claude mcp add memorydetective -- npx -y memorydetectiveClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"memorydetective": {
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"memorydetective": {
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"memorydetective": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ひと目でわかる
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント carloshpdoc で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:6 か月前
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
話し合い
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
ユーザーレビュー
まだレビューはありません
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5751件のうち91%よりスターが多い
- このカテゴリのほかの5751件のうち13%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5751件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Memorydetectiveは安全ですか?
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は6 か月前、最新バージョン(1.18.1)がレジストリに届いたのは6 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
代わりに使えるものは?
同じカテゴリには:REA, Netdata, Front-End Checklist
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
memorydetective
English · Português brasileiro
Diagnose iOS retain cycles and performance regressions from your chat window. No Xcode required.
Highlights
- CLI-driven leak hunting. Read
.memgraphfiles captured by Xcode (or bymemorydetectiveitself on simulators), find ROOT CYCLEs, classify them against known SwiftUI/Combine patterns, and get a one-liner fix hint. All from a script or a chat. - MCP-native. Plugs into Claude Code, Claude Desktop, Cursor, Cline, and any other MCP client. The agent drives the full investigate → classify → suggest-fix loop without you opening Instruments.
- Honest about its limits. No mocked outputs, no over-promises. Hangs analysis works clean from
xctrace; sample-level Time Profile is parsed whenxctracesymbolicates the trace and returns a structured workaround notice when it can't (the underlyingxctraceSIGSEGV on heavy unsymbolicated traces is an Apple-side limitation we surface explicitly). Memory Graph capture works on Mac apps and iOS simulator; physical iOS devices still need Xcode.
What's new in v1.18 (2026-05-17): MetricKit + audit-close. `analyzeMetricKitPayload` is the 42nd MCP tool: ingests Apple MetricKit
.mxdiagnosticJSON payloads from real-device TestFlight / App Store builds (post-mortem production diagnostics, no MCP competitor covers this lane today). Three actionable outputs: crash clusters by exception type / binary / top frame, hang hotspots with localized-duration parsing ("5.4 sec"/"20秒"), CPU + disk exceptions. Cross-tool chain hints (e.g.objc_release-style top frame surfaces afindCyclessuggestion). Plus three audit-close items: open-enumSupportStatusKind(downstream consumers add kinds without a breaking type bump), invocation-scopedschemaDiscoverycache (summarizeTraceend-to-end shaved from ~28s to ~15s on real Apple traces via single up-front TOC fetch), and local-only integration tests against real Apple.tracebundles (closes the v1.14 P+O drift class for good). 701 → 757 tests. 41 → 42 MCP tools.
Also recent (v1.17): reliability pass. 14 bug fixes across three tiers. Headlines: strtobool env truthy parsing,
verifyFixwhitelist match modes (exact / substring / regex),recordViaInstrumentsAppcatches traces saved outsidewatchDir,inspectTracefault-tolerant fallback, configurablecountAliveframework-noise filter, variable-size class min/max/median.
And v1.16: macOS 26.x recording-unblock release. New
recordViaInstrumentsAppMCP tool wraps the Instruments.app GUI flow: opens the app, surfaces step-by-step instructions, watches a directory for the saved.trace, and chains intoinspectTraceon success. Until Apple fixes thexcrun xctrace recordregression on macOS 26.x sims, this is the automated path.
And v1.15: schema coverage + verify-fix UX. Three new MCP trace tools filled the remaining schema gap:
analyzeMemoryFootprint(38th, VM resident / dirty / virtual + jetsam diagnosis),analyzeEnergyImpact(39th, battery drain investigation),analyzeLeakTimeline(40th, xctrace's leaks instrument as a time series).summarizeTracenow chainsanalyzeNetworkActivity.replayScenariocaptures simulator screenshots per step.
Earlier: v1.14 trace-side reliability,
analyzeNetworkActivity, unifiedsupportStatus[], FLEX-inspiredcountAlivesize view, MLeaksFinder + DebugSwift-inspiredverifyFixwhitelist. v1.13 shippedsummarizeTrace+/summarize-traceMCP prompt. v1.12 completed reference-tree propagation. v1.11 added inspectTrace, diffMemgraphs reference-tree. v1.9 shipped analyzeAbandonedMemory, detectLeaksInXCTest, cleanupTraces, mainThreadViolations. Full notes in CHANGELOG.
Heads up for macOS 26.x users: Apple shipped a
task_for_pidkernel regression on macOS 26.x that blocksleaks --outputGraph,heap, ANDxctrace --template Allocationsagainst iOS simulator processes regardless ofMallocStackLogging. Even Xcode's "View Memory Graph Hierarchy" hits it unlessMalloc Stack Loggingis enabled in the scheme's Diagnostics tab. memorydetective surfaces this as a proactiveplatformAdvisoryon the first capture-class tool call, plus aworkaroundNoticewithissue: "macos-26-task-for-pid-broken"ifleaksis invoked. The most reliable workaround today is to target an iOS 18 simulator runtime (install via Xcode > Settings > Platforms > +iOS 18.x). Empirically validated in the notelet investigation 2026-05-12 where three independent CLI memory-introspection paths all failed before iOS 18 was identified as the working escape hatch. SetMEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1to silence the notice once you have settled on a workaround.
Also on macOS 26.x: `xctrace record` is broken for simulator targets. Independent from the
task_for_pidregression above,xcrun xctrace record --time-limit Nsagainst iOS simulator processes wedges past the time limit, eventually exits when killed, and the resulting.tracebundle is missing template metadata.xctrace export --tocthen fails withDocument Missing Template Error. Re-validated against Xcode 26.5 (build 17F42, xctrace 16.0) 2026-05-15: regression survives the update. This hits the entirexctrace-based ecosystem the same way (memorydetective.recordTimeProfile, XcodeTraceMCP, and nakedxcrun xctrace recordcalls all fail identically). Workarounds: (1) use `recordViaInstrumentsApp` (v1.16, hardened in v1.17), which opens Instruments.app for you, prompts you to record + save the.trace, then chains intoinspectTraceautomatically once the bundle appears. v1.17 also catches saves outside the watch directory via an Instruments.app AppleScript document query, returningsavedOutsideWatchDir: trueplus the actual path; (2) record from an older macOS host with Xcode 26.0 if you have one; (3) record against a physical device (the regression appears to be simulator-specific). v1.17 added a viability probe onrecordTimeProfile(bundleStatus: "wedged"when the on-disk bundle is the 52K stub) and oninspectTrace(returnsok: truewith diagnosis text instead of throwing). USAGE.md > Troubleshooting has a step-by-step.
Quickstart
npm install -g memorydetective
Add to your MCP client config (Claude Code shown):
// ~/.claude/settings.json
{ "mcpServers": { "memorydetective": { "command": "memorydetective" } } }
Or use it directly from the command line:
memorydetective analyze ~/Desktop/myapp.memgraph
memorydetective classify ~/Desktop/myapp.memgraph
→ See Examples for chat-driven flows · API for the full tool reference · Configure for Claude Desktop / Cursor / Cline · USAGE.md for the full walkthrough including how fixes flow from diagnosis to your codebase.
Examples
Realistic chat snippets. The agent calls the MCP tools listed in API.
Diagnose a leak from a memgraph
You: I just exported a memory graph at
~/Desktop/example.memgraph. Something's leaking after I close a detail screen. What is it?
Claude: *(calls
analyzeMemgraph→classifyCycle)*
Found 4 ROOT CYCLE blocks across 60,436 leaks. The dominant one matches swiftui.tag-index-projection with high confidence. A closure attached via
.tag()on a photo carouselForEachis capturingselfstrongly through_viewModel.wrappedValue, which keepsDetailViewModeland the navigation coordinator alive after dismissal.
Suggested fix: replace
[weak self]capture in the tap handler with a static helper, or weak-capture the view-model via[weak coord = self.coordinator]. Want me to find the exact file?
Verify a fix actually worked
You: I shipped the fix. Compare
~/Desktop/before.memgraphto~/Desktop/after.memgraphand tell me whetherDetailViewModelcount dropped.
Claude: *(calls
diffMemgraphs→countAlive)*
DetailViewModel: 12 → 0 (delta-12). Theswiftui.tag-index-projectioncycle is gone. Total leak count fell from 60,436 to 55,576 (−4,860). Three other ROOT CYCLEs persist. They're SwiftUI internals, not your code.
Self-contained verify-fix loop (v1.8)
When leaks --outputGraph fails on macOS 26.x (Failed to get DYLD info for task), the cause is usually that the app was not launched with MallocStackLogging=1. The new orchestration tools handle this end to end without you wiring up xcodebuild + simctl + axe yourself.
You: Reproduce the leak in
MyAppfor me. Build, launch with the right env vars, repeat the photo carousel flow 5 times to amplify it, capture before, then I'll ship the fix and you capture after.
Claude: *(calls
bootAndLaunchForLeakInvestigation)*
Built + booted iPhone 15 (UDID
ABCD-...). LaunchedMyApp(PID49581) withMallocStackLogging=1. Bundle idcom.example.MyApp.
*(calls
replayScenariowith 5 taps on the carousel + back-button cycle, repeat 5)*
Executed 25 actions in 12.3s. No failures.
*(calls
captureScenarioState({label:"before"}))*
Wrote
before.memgraph(63,201 leaks),before.png,before.ui.json.MallocStackLoggingactive, no workaroundNotice.
*(you ship the fix and rebuild)*
*(calls
bootAndLaunchForLeakInvestigation+ replay +captureScenarioState({label:"after"}))*
*(calls
diffMemgraphs→verifyFix)*
DetailViewModel: 15 → 0.swiftui.tag-index-projectionPASS. Bytes freed: 28.4 MB.
Find the slow path on a real device
You: Profile DemoApp on my iPhone for 90 seconds and tell me where the hangs are.
Claude: *(calls
listTraceDevices→recordTimeProfile→analyzeHangs)*
Recorded
~/Desktop/run.trace(90s, attached to DemoApp on iPhone 17 Pro Max). Found 23 user-visible hangs (>500 ms each), longest 1.16 s, average 769 ms. Severe load. All on the main thread. Sample-level hotspots aren't symbolicated yet; open the trace in Instruments for that step (analyzeTimeProfilereturns a structured workaround notice whenxctracecan't symbolicate. See CHANGELOG known limits).
Analyze MetricKit payloads from real-user crashes (v1.18)
You: I have a folder of
.mxdiagnosticfiles from the last 30 days of TestFlight at~/Downloads/metrickit-may/. What's catching real users?
Claude: *(calls
analyzeMetricKitPayload({ payloadDir: "~/Downloads/metrickit-may/" }))*
47 payloads, 2026-04-15 → 2026-05-15. Top: 18 crashes EXC_BAD_ACCESS clustered on the same top frame, all in builds 456 and 457 (clean on 458 + earlier). Pattern matches retain-cycle release; chain hint surfaces
findCyclesnext.
Second: 5.4s hang on
libsqlite3.dylib(3 samples). Patterndb-lock. If you reproduce locally, chain intoanalyzeHangswithincludeStackClassification: truefor themainThreadViolations[]classifier.
No symbolicated frames in v1.18 (raw
binaryUUID + offsetshipped; dSYM lookup is a separate tool, future release). Localized hang strings handled: input was"5.4 sec", normalized to 5400ms; one diagnostic carrie