xcodeinstrumentmcp
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., "@xcodeinstrumentmcprecord a time profile for the MyApp target"
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.
xcodeinstrumentmcp
xcodeinstrumentmcp is a local-first CLI and MCP server for turning Xcode Instruments artifacts into bounded, agent-sized evidence.
It ships one package with:
CLI workflows for
doctor,list,record,import,summarize,compare,prompt,db,signpost, andmcplocal SQLite caching with stable snapshot, comparison, and prompt-pack IDs
fixture-backed analyzers for Time Profiler, Allocations, Hangs, Network, Leaks, Energy Log, Memory Graph, and experimental Processor Trace
Swift-only signpost scan/plan/apply/revert/status flows backed by the
xim-swiftsignpostSwiftSyntax helpera bounded MCP surface over the same high-value workflows
Install
Repo-local install:
pnpm install
pnpm exec tsup
node dist/index.js doctorRequirements:
macOS 14+
Node.js 22+
Xcode /
xctraceSwift toolchain for signpost helper build/use
CLI Quick Start
Check the local environment:
xcodeinstrumentmcp doctorImport and persist a Time Profiler trace:
xcodeinstrumentmcp import --instrument time-profiler --input ./run.traceSummarize a supported family fixture or artifact:
xcodeinstrumentmcp summarize --instrument allocations --input ./allocations.xml --format markdown
xcodeinstrumentmcp summarize --instrument network --input ./session.har --format jsonCompare two stored snapshots:
xcodeinstrumentmcp compare --baseline-snapshot snap_base --candidate-snapshot snap_new --format jsonGenerate a reusable prompt pack:
xcodeinstrumentmcp prompt --snapshot snap_abc --size medium --format jsonScan and apply Swift signpost instrumentation:
xcodeinstrumentmcp signpost scan --project-root .
xcodeinstrumentmcp signpost plan --project-root . --strategy explicit-symbols --symbol GatewayViewModel.refresh
xcodeinstrumentmcp signpost apply --plan plan_abcInspect the local cache:
xcodeinstrumentmcp db stats
xcodeinstrumentmcp db list-snapshotsSupport Matrix
time-profiler: stable first-class analyzer with record, summarize, compare, and prompt supportallocations: stable first-class analyzer from trace export or exported detail XMLhangs: stable first-class analyzer from hang tables or fixture XMLnetwork: stable first-class analyzer from HAR import with redaction by defaultleaks: stable summary analyzer with conservative confidence languageenergy-log: stable summary analyzer from exported summary XMLmemory-graph: stable summary analyzer from imported.memgraphfixturesprocessor-trace: experimental gated analyzer with explicit caveats in CLI and MCP responses
MCP Setup
Cursor / generic stdio client:
{
"command": "xcodeinstrumentmcp",
"args": ["mcp"]
}Repo-local stdio launch:
{
"command": "node",
"args": ["/absolute/path/to/dist/index.js", "mcp"]
}Current MCP surface includes bounded workflow tools such as:
record_time_profilerecord_profileimport_sourcesummarize_tracesummarize_snapshotcompare_tracescompare_snapshotsgenerate_optimization_promptgenerate_prompt_packlist_snapshotsget_snapshotget_comparisonget_findingsplan_signpostsapply_signpost_planrevert_signpost_patch
Limitations
Processor Trace is experimental and returns
experimental: truein MCP responses.Network analysis is HAR-first in this release; trace-side network capture is still target/platform dependent.
Memory Graph support is import-oriented rather than a unified
xctrace recordpath.Outputs are intentionally bounded; raw exports are not returned by default.
Privacy
The tool is local-only. Persistence is local SQLite under ~/Library/Application Support/xcodeinstrumentmcp/cache.db unless XIM_DB_PATH overrides it for tests or custom local workflows.
Network outputs keep bodies, auth headers, and sensitive query values redacted by default. Sensitive network fields require an explicit opt-in flag or MCP argument.
Troubleshooting
xctrace not found:
Run
xcodeinstrumentmcp doctor.Confirm
xcrun --find xctracesucceeds.
No Time Profiler table found:
Re-record with the Time Profiler template or import a supported Time Profiler trace.
Processor Trace record/import is unavailable:
The analyzer is experimental and capability-gated.
Prefer importing a known-good Processor Trace artifact when host/target versions differ.
Signpost helper build fails:
Confirm
swift --versionworks.Re-run
xcodeinstrumentmcp doctorandswift build -c release --package-path tools/xim-swiftsignpost.
compare --baseline-snapshot fails:
Ensure both snapshots come from the same family, or pass explicit source artifacts with a supported comparison strategy.
This server cannot be installed
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/eksdev007/xcodeinstrumentmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server