GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
iOS leak/perf debugging via MCP: memgraph cycles, .trace analysis, SourceKit-LSP bridging.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"memorydetective": {
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}Run this in your terminal
claude mcp add memorydetective -- npx -y memorydetectivePaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"memorydetective": {
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"memorydetective": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"memorydetective"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account carloshpdoc, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.18.1) reached the registry 6 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
English · Português brasileiro
Diagnose iOS retain cycles and performance regressions from your chat window. No Xcode required.
.memgraph files captured by Xcode (or by memorydetective itself 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.xctrace; sample-level Time Profile is parsed when xctrace symbolicates the trace and returns a structured workaround notice when it can't (the underlying xctrace SIGSEGV 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.
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.
Realistic chat snippets. The agent calls the MCP tools listed in API.
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?
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.
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.
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).
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
Only the beginning is shown; read the rest in the repo