xcode-build-optimizer-mcp
# xcode-build-optimizer-mcp
An MCP server for deterministic Xcode build-time optimization: build-timing
analysis, DerivedData/module-cache management, and build-speed config
linting — for AI coding agents (Claude Code, Claude Desktop, and other MCP
clients).
This is deliberately *not* a build/test/simulator orchestration tool — use
it alongside [XcodeBuildMCP](https://github.com/cameroncooke/XcodeBuildMCP)
or any other build runner.
## Install
```
npx xcode-build-optimizer-mcp
```
Add to your MCP client config (e.g. Claude Code `~/.claude.json` or Claude
Desktop `claude_desktop_config.json`):
```json
{
"mcpServers": {
"xcode-build-optimizer": {
"command": "npx",
"args": ["xcode-build-optimizer-mcp"]
}
}
}
```
## Tools
| Tool | Purpose |
| --- | --- |
| `build_run` | Run an instrumented `xcodebuild` build; returns structured errors/warnings and a `buildId`. |
| `build_timing_report` | Ranked slow build task categories/functions/expressions for a `build_run` result. |
| `cache_inspect` | DerivedData/module-cache size, staleness, and bloat report. |
| `cache_clean` | Delete a specific cache path reported by `cache_inspect` (requires `confirm: true`). |
| `config_lint` | Scan `.pbxproj`/`.xcconfig` for 8 known build-speed anti-patterns. |
## Requirements
- macOS with Xcode Command Line Tools installed.
- Node.js >= 20.
For per-expression timing, pass `deep: true` to `build_run`; `build_timing_report`
then reports `deepSource: "debug-time-function-bodies"`.
> **Not yet implemented:** an opportunistic
> [XCLogParser](https://github.com/MobileNativeFoundation/XCLogParser) enhancement
> was prototyped but is **not** wired up in v0.1 — its JSON output shape and the
> `.xcactivitylog` naming convention it depends on have not been verified against
> a real XCLogParser install. `build_timing_report` never invokes `xclogparser`,
> whether or not it is on `PATH`.
## Contributing
Issues and PRs welcome. Run `npm test` before submitting; `npm run test:integration` additionally requires a full Xcode install and runs a real build against the fixture project in `test/integration/`.
## License
MIT
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: build execution, cache inspection, cache cleanup, timing analysis, and config linting. No overlap in functionality, and the descriptions further distinguish their roles.
All tool names follow a consistent verb_noun pattern (build_run, cache_inspect, cache_clean, build_timing_report, config_lint). This is uniform and predictable, making tool selection straightforward.
Five tools is well-scoped for an Xcode build optimizer server. Each tool serves a distinct part of the optimization workflow without redundancy, and the count feels neither thin nor overwhelming for the purpose.
The tool set covers the primary lifecycle: running builds, inspecting and cleaning caches, analyzing timing, and linting configs. A minor gap is the absence of a tool to directly apply optimizations (e.g., modify configs), but the existing tools enable identification and manual fixes.