Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/TOOLS-CLI.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ XcodeBuildMCP provides 71 canonical tools organized into 13 workflow groups.
**Purpose**: Complete iOS development workflow for both .xcodeproj and .xcworkspace files targeting simulators. (21 tools)

- `boot` - Defined in Simulator Management workflow.
- `build` - Build for iOS sim.
- `build-and-run` - Build and run iOS sim.
- `build` - Build for iOS sim (compile-only, no launch).
- `build-and-run` - Build and run iOS sim (preferred for run/launch intent).
- `clean` - Defined in iOS Device Development workflow.
- `discover-projects` - Defined in iOS Device Development workflow.
- `get-app-bundle-id` - Defined in iOS Device Development workflow.
Expand Down Expand Up @@ -187,4 +187,4 @@ XcodeBuildMCP provides 71 canonical tools organized into 13 workflow groups.

---

*This documentation is automatically generated by `scripts/update-tools-docs.ts` from the tools manifest. Last updated: 2026-02-08T12:09:33.648Z UTC*
*This documentation is automatically generated by `scripts/update-tools-docs.ts` from the tools manifest. Last updated: 2026-02-11T12:07:11.056Z UTC*
6 changes: 3 additions & 3 deletions docs/TOOLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ This document lists MCP tool names as exposed to MCP clients. XcodeBuildMCP prov
**Purpose**: Complete iOS development workflow for both .xcodeproj and .xcworkspace files targeting simulators. (21 tools)

- `boot_sim` - Defined in Simulator Management workflow.
- `build_run_sim` - Build and run iOS sim.
- `build_sim` - Build for iOS sim.
- `build_run_sim` - Build and run iOS sim (preferred for run/launch intent).
- `build_sim` - Build for iOS sim (compile-only, no launch).
- `clean` - Defined in iOS Device Development workflow.
- `discover_projs` - Defined in iOS Device Development workflow.
- `get_app_bundle_id` - Defined in iOS Device Development workflow.
Expand Down Expand Up @@ -202,4 +202,4 @@ This document lists MCP tool names as exposed to MCP clients. XcodeBuildMCP prov

---

*This documentation is automatically generated by `scripts/update-tools-docs.ts` from the tools manifest. Last updated: 2026-02-08T12:09:33.648Z UTC*
*This documentation is automatically generated by `scripts/update-tools-docs.ts` from the tools manifest. Last updated: 2026-02-11T12:07:11.056Z UTC*
2 changes: 1 addition & 1 deletion manifests/tools/build_run_sim.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module: mcp/tools/simulator/build_run_sim
names:
mcp: build_run_sim
cli: build-and-run
description: Build and run iOS sim.
description: Build and run iOS sim (preferred for run/launch intent).
predicates:
- hideWhenXcodeAgentMode
annotations:
Expand Down
2 changes: 1 addition & 1 deletion manifests/tools/build_sim.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module: mcp/tools/simulator/build_sim
names:
mcp: build_sim
cli: build
description: Build for iOS sim.
description: Build for iOS sim (compile-only, no launch).
predicates:
- hideWhenXcodeAgentMode
annotations:
Expand Down
8 changes: 6 additions & 2 deletions skills/xcodebuildmcp-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ Notes:

### Build And Run On Simulator

If your intent is to run the app in Simulator, use `build-and-run` directly. It already performs the build step.
Do not run `build` first unless the user explicitly requests both commands.

1. List simulators and pick a device name or UDID.
2. Build and run.

Expand All @@ -50,7 +53,8 @@ xcodebuildmcp simulator build-run-sim --scheme MyApp --project-path ./MyApp.xcod

### Build only

When you only need to check that there are no build errors, you can build without running the app.
Use this only when you want compile feedback and do not want to launch the app.
For run/launch intent, use `build-and-run` instead of chaining `build` and `build-and-run`.

```bash
xcodebuildmcp simulator build-sim --scheme MyApp --project-path ./MyApp.xcodeproj --simulator-name "iPhone 17 Pro"
Expand Down Expand Up @@ -187,4 +191,4 @@ xcodebuildmcp daemon restart
To see all daemon commands, view daemon help:
```bash
xcodebuildmcp daemon --help
```
```
7 changes: 7 additions & 0 deletions skills/xcodebuildmcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ Prefer XcodeBuildMCP over raw `xcodebuild`, `xcrun`, or `simctl`.

If a capability is missing, assume your tool list may be hiding tools (search/progressive disclosure) or not loading tool schemas yet. Use your tool-search or “load tools” mechanism. If you still can’t find the tools, ask the user to enable them in the MCP client's configuration.

## Default Tool Choice (Simulator)

- If intent includes run/launch/open in Simulator, use `build_run_sim` as the default.
- If intent is compile-only feedback (no launch), use `build_sim`.
- Do not call `build_sim` and then `build_run_sim` in sequence unless the user explicitly asks for both.
- If the app is already built and you need launch only without rebuilding, use `install_app_sim` + `launch_app_sim` (or `launch_app_logs_sim`).

## Tools (exact names + official descriptions)

### Session defaults
Expand Down
32 changes: 26 additions & 6 deletions src/mcp/tools/project-discovery/__tests__/list_schemes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,20 +79,30 @@ describe('list_schemes plugin', () => {
priority: 1,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator',
tool: 'build_run_sim',
label: 'Build and run on iOS Simulator (default for run intent)',
params: {
projectPath: '/path/to/MyProject.xcodeproj',
scheme: 'MyProject',
simulatorName: 'iPhone 16',
},
priority: 2,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator (compile-only)',
params: {
projectPath: '/path/to/MyProject.xcodeproj',
scheme: 'MyProject',
simulatorName: 'iPhone 16',
},
priority: 3,
},
{
tool: 'show_build_settings',
label: 'Show build settings',
params: { projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyProject' },
priority: 3,
priority: 4,
},
],
isError: false,
Expand Down Expand Up @@ -317,20 +327,30 @@ describe('list_schemes plugin', () => {
priority: 1,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator',
tool: 'build_run_sim',
label: 'Build and run on iOS Simulator (default for run intent)',
params: {
workspacePath: '/path/to/MyProject.xcworkspace',
scheme: 'MyApp',
simulatorName: 'iPhone 16',
},
priority: 2,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator (compile-only)',
params: {
workspacePath: '/path/to/MyProject.xcworkspace',
scheme: 'MyApp',
simulatorName: 'iPhone 16',
},
priority: 3,
},
{
tool: 'show_build_settings',
label: 'Show build settings',
params: { workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyApp' },
priority: 3,
priority: 4,
},
],
isError: false,
Expand Down
16 changes: 13 additions & 3 deletions src/mcp/tools/project-discovery/list_schemes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,20 +99,30 @@ export async function listSchemesLogic(
priority: 1,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator',
tool: 'build_run_sim',
label: 'Build and run on iOS Simulator (default for run intent)',
params: {
[`${projectOrWorkspace}Path`]: path!,
scheme: firstScheme,
simulatorName: 'iPhone 16',
},
priority: 2,
},
{
tool: 'build_sim',
label: 'Build for iOS Simulator (compile-only)',
params: {
[`${projectOrWorkspace}Path`]: path!,
scheme: firstScheme,
simulatorName: 'iPhone 16',
},
priority: 3,
},
{
tool: 'show_build_settings',
label: 'Show build settings',
params: { [`${projectOrWorkspace}Path`]: path!, scheme: firstScheme },
priority: 3,
priority: 4,
},
);

Expand Down
Loading