ios-instruments-mcp
Provides tools to profile iOS apps using Instruments (xctrace), including analyzing app launch, memory allocations, leaks, CPU time profiling, and network requests.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ios-instruments-mcpCheck launch time of com.myapp.ios"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ios-instruments-mcp
MCP server that wraps xctrace (Instruments) to profile iOS apps directly from Claude. Ask natural language questions about your app's performance and get actionable answers.
What you can ask Claude
"Faz o launch timer do com.myapp.ios e diz-me os ofensores"
"Analisa o memory footprint do app no simulador"
"Verifica se há leaks de memória no com.myapp.ios"
"Qual função está a consumir mais CPU?"
"Há requests de rede lentos no app?"
"Analisa o trace em ~/Desktop/launch.xctrace"Related MCP server: Perfetto MCP
Requirements
macOS with Xcode installed
Xcode Command Line Tools:
xcode-select --installNode.js ≥ 18
Setup
# 1. Clone and install
git clone https://github.com/bfernandesbfs/ios-instruments-mcp.git
cd ios-instruments-mcp
npm install
npm run build
# 2. Register in Claude DesktopAdd to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ios-instruments": {
"command": "node",
"args": ["/absolute/path/to/ios-instruments-mcp/build/index.js"]
}
}
}Restart Claude Desktop after saving.
Available Tools
Tool | Template | Description |
| — | Lists simulators and physical devices |
| — | Lists all Instruments templates on this Mac |
| App Launch | Records + analyzes app startup time |
| App Launch | Analyzes an existing |
| Allocations | Peak memory, top allocation types |
| Allocations | Analyzes an existing |
| Leaks | Memory leak detection with retain cycle info |
| Leaks | Analyzes an existing |
| Time Profiler | CPU hot methods and main thread usage |
| Time Profiler | Analyzes an existing |
| Network | Slow requests, transfer sizes, status codes |
| Network | Analyzes an existing |
Example output (App Launch)
# App Launch Analysis — com.myapp.ios
⚠️ Launch time 1240ms — above 400ms. Users may notice the delay.
**Total:** 1240ms
## Phases
- pre-main (dyld + static init): 434ms (35%)
- post-main (AppDelegate + UI): 806ms (65%)
## Top Offenders
🔴 `-[DatabaseManager setup]` [post-main]
Self: 540ms | Total: 540ms | 43%
💡 Move database initialization to a background queue or use lazy loading.
🟡 `+[AnalyticsSDK configure:]` [post-main]
Self: 210ms | Total: 210ms | 17%
💡 Defer analytics SDK initialization after first frame is rendered.
## Recommendations
- Fix 1 critical offender(s) — each adds 300ms+ to launch.
- Target: total launch under 400ms.Notes
Physical devices require Enable UI Automation in Settings → Developer
Temp
.xctracefiles are cleaned up automatically after each runThe parser handles both legacy and modern
xctraceXML formatsAll tools have an
_tracevariant for analyzing files you already have on disk
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/bfernandesbfs/ios-instruments-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server