Skip to content

Commit 384c59e

Browse files
committed
Add SKILLS
1 parent f099766 commit 384c59e

6 files changed

Lines changed: 280 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- Add session-status MCP resource with session identifiers.
88
- Add UI automation guard that blocks UI tools when the debugger is paused.
99
- Add manage-workflows tool for live workflow selection updates.
10+
- Add a bundled XcodeBuildMCP skill to improve MCP client tool discovery.
1011

1112
### Changed
1213
- Migrate to Zod v4.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt ou
102102
- Tools reference: [docs/TOOLS.md](docs/TOOLS.md)
103103
- Troubleshooting: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)
104104
- Privacy: [docs/PRIVACY.md](docs/PRIVACY.md)
105+
- Skills: [docs/SKILLS.md](docs/SKILLS.md)
105106
- Contributing: [docs/dev/CONTRIBUTING.md](docs/dev/CONTRIBUTING.md)
106107

107108
## Licence

docs/CONFIGURATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ XcodeBuildMCP is configured through environment variables provided by your MCP c
1717

1818
## Workflow selection
1919

20-
By default, XcodeBuildMCP loads all tools at startup. If you want a smaller tool surface for a specific workflow, set `XCODEBUILDMCP_ENABLED_WORKFLOWS` to a comma-separated list of workflow directory names. The `session-management` workflow is always auto-included since other tools depend on it. When `XCODEBUILDMCP_DEBUG=true`, the `doctor` workflow is also auto-included.
20+
By default, XcodeBuildMCP loads the `simulator` workflow at startup (plus `session-management`). If you want a smaller or different tool surface, set `XCODEBUILDMCP_ENABLED_WORKFLOWS` to a comma-separated list of workflow directory names. The `session-management` workflow is always auto-included since other tools depend on it. When `XCODEBUILDMCP_DEBUG=true`, the `doctor` workflow is also auto-included.
2121

2222
**Available workflows:**
2323
- `device` (14 tools) - iOS Device Development

docs/SKILLS.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# XcodeBuildMCP Skill
2+
3+
This repository bundles a minimal skill that summarizes XcodeBuildMCP workflows and tools to help steer clients to use MCP tools, this is espeically important for clients that progressively load or hide MCP tools behind search interfaces (i.e. Cursor, Claude Code).
4+
5+
## Install (Codex CLI)
6+
7+
```bash
8+
curl -fsSL https://raw.githubusercontent.com/cameroncook/XcodeBuildMCP/main/scripts/install-skill.sh | bash -s -- --codex
9+
```
10+
11+
## Install (Claude Code)
12+
13+
```bash
14+
curl -fsSL https://raw.githubusercontent.com/cameroncook/XcodeBuildMCP/main/scripts/install-skill.sh | bash -s -- --claude
15+
```
16+
17+
## Install (Other Clients)
18+
19+
Some MCP clients do not yet support skills. Use the skill content as a concise, static instruction block:
20+
21+
1. Open `skills/xcodebuildmcp/SKILL.md`.
22+
2. Copy the body (everything below the YAML frontmatter).
23+
3. Paste it into the client’s global or project-level instructions/rules area.

scripts/install-skill.sh

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
usage() {
5+
cat <<'EOF'
6+
Usage: install-skill.sh --codex|--claude|--dest <path>
7+
8+
Installs (or replaces) the XcodeBuildMCP skill.
9+
10+
You must choose a destination with --codex, --claude, or --dest.
11+
EOF
12+
}
13+
14+
destination=""
15+
16+
while [[ $# -gt 0 ]]; do
17+
case "$1" in
18+
--codex)
19+
destination="${HOME}/.codex/skills/public"
20+
shift
21+
;;
22+
--claude)
23+
destination="${HOME}/.claude/skills"
24+
shift
25+
;;
26+
--dest)
27+
if [[ $# -lt 2 ]]; then
28+
echo "Missing value for --dest" >&2
29+
usage
30+
exit 1
31+
fi
32+
destination="$2"
33+
shift 2
34+
;;
35+
-h|--help)
36+
usage
37+
exit 0
38+
;;
39+
*)
40+
echo "Unknown option: $1" >&2
41+
usage
42+
exit 1
43+
;;
44+
esac
45+
done
46+
47+
if [[ -z "${destination}" ]]; then
48+
echo "Missing destination option." >&2
49+
usage
50+
exit 1
51+
fi
52+
53+
skill_dir="${destination}/xcodebuildmcp"
54+
skill_url="https://raw.githubusercontent.com/cameroncook/XcodeBuildMCP/main/skills/xcodebuildmcp/SKILL.md"
55+
56+
rm -rf "${skill_dir}"
57+
mkdir -p "${skill_dir}"
58+
curl -fsSL "${skill_url}" -o "${skill_dir}/SKILL.md"
59+
60+
printf 'Installed XcodeBuildMCP skill to %s\n' "${skill_dir}"

skills/xcodebuildmcp/SKILL.md

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
name: xcodebuildmcp
3+
description: Concise workflow map and tool overview for XcodeBuildMCP. Use when doing iOS/macOS/watchOS/tvOS/visionOS work (build, test, run, debug, log, UI automation).
4+
---
5+
6+
# XcodeBuildMCP
7+
8+
Prefer XcodeBuildMCP tools over shell commands for Apple platform tasks when available.
9+
10+
If a capability is missing, assume your tool list may be hiding tools (search/progressive disclosure) or not loading 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 configuration.
11+
12+
## Tools (exact names + official descriptions)
13+
14+
### Session defaults
15+
16+
Most tools require session defaults to be set before they can be used, be sure to set all required defaults before tools. You may need to call one or more discovery/list tools to obtain the values needed for certain defaults.
17+
18+
- `session_set_defaults`
19+
- Set the session defaults, should be called at least once to set tool defaults.
20+
- `session_show_defaults`
21+
- Show session defaults.
22+
- `session_clear_defaults`
23+
- Clear session defaults.
24+
25+
### Project discovery
26+
27+
- `discover_projs`
28+
- Scans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files.
29+
- `list_schemes`
30+
- List Xcode schemes.
31+
- `show_build_settings`
32+
- Show build settings.
33+
- `get_app_bundle_id`
34+
- Extract bundle id from .app.
35+
- `get_mac_bundle_id`
36+
- Extract bundle id from macOS .app.
37+
38+
### Simulator
39+
40+
- `boot_sim`
41+
- Boot iOS simulator.
42+
- `list_sims`
43+
- List iOS simulators.
44+
- `open_sim`
45+
- Open Simulator app.
46+
- `build_sim`
47+
- Build for iOS sim.
48+
- `build_run_sim`
49+
- Build and run iOS sim.
50+
- `test_sim`
51+
- Test on iOS sim.
52+
- `get_sim_app_path`
53+
- Get sim built app path.
54+
- `install_app_sim`
55+
- Install app on sim.
56+
- `launch_app_sim`
57+
- Launch app on simulator.
58+
- `launch_app_logs_sim`
59+
- Launch sim app with logs.
60+
- `stop_app_sim`
61+
- Stop sim app.
62+
- `record_sim_video`
63+
- Record sim video.
64+
65+
### Simulator management
66+
67+
- `erase_sims`
68+
- Erase simulator.
69+
- `set_sim_location`
70+
- Set sim location.
71+
- `reset_sim_location`
72+
- Reset sim location.
73+
- `set_sim_appearance`
74+
- Set sim appearance.
75+
- `sim_statusbar`
76+
- Set sim status bar network.
77+
78+
### Device
79+
80+
- `list_devices`
81+
- List connected devices.
82+
- `build_device`
83+
- Build for device.
84+
- `test_device`
85+
- Test on device.
86+
- `get_device_app_path`
87+
- Get device built app path.
88+
- `install_app_device`
89+
- Install app on device.
90+
- `launch_app_device`
91+
- Launch app on device.
92+
- `stop_app_device`
93+
- Stop device app.
94+
95+
### macOS
96+
97+
- `build_macos`
98+
- Build macOS app.
99+
- `build_run_macos`
100+
- Build and run macOS app.
101+
- `test_macos`
102+
- Test macOS target.
103+
- `get_mac_app_path`
104+
- Get macOS built app path.
105+
- `launch_mac_app`
106+
- Launch macOS app.
107+
- `stop_mac_app`
108+
- Stop macOS app.
109+
110+
### Logging
111+
112+
- `start_device_log_cap`
113+
- Start device log capture.
114+
- `start_sim_log_cap`
115+
- Start sim log capture.
116+
- `stop_device_log_cap`
117+
- Stop device log capture.
118+
- `stop_sim_log_cap`
119+
- Stop sim log capture.
120+
121+
### Debugging
122+
123+
- `debug_attach_sim`
124+
- Attach LLDB to sim app.
125+
- `debug_breakpoint_add`
126+
- Add breakpoint.
127+
- `debug_breakpoint_remove`
128+
- Remove breakpoint.
129+
- `debug_continue`
130+
- Continue debug session.
131+
- `debug_detach`
132+
- Detach debugger.
133+
- `debug_lldb_command`
134+
- Run LLDB command.
135+
- `debug_stack`
136+
- Get backtrace.
137+
- `debug_variables`
138+
- Get frame variables.
139+
140+
### UI automation
141+
142+
- `button`
143+
- Press simulator hardware button.
144+
- `gesture`
145+
- Simulator gesture preset.
146+
- `key_press`
147+
- Press key by keycode.
148+
- `key_sequence`
149+
- Press a sequence of keys by their keycodes.
150+
- `long_press`
151+
- Long press at coords.
152+
- `screenshot`
153+
- Capture screenshot.
154+
- `snapshot_ui`
155+
- Print view hierarchy with precise view coordinates (x, y, width, height) for visible elements.
156+
- `swipe`
157+
- Swipe between points.
158+
- `tap`
159+
- Tap coordinate or element.
160+
- `touch`
161+
- Touch down/up at coords.
162+
- `type_text`
163+
- Type text.
164+
165+
### SwiftPM
166+
167+
- `swift_package_build`
168+
- swift package target build.
169+
- `swift_package_clean`
170+
- swift package clean.
171+
- `swift_package_list`
172+
- List SwiftPM processes.
173+
- `swift_package_run`
174+
- swift package target run.
175+
- `swift_package_stop`
176+
- Stop SwiftPM run.
177+
- `swift_package_test`
178+
- Run swift package target tests.
179+
180+
### Scaffolding / utilities
181+
182+
- `scaffold_ios_project`
183+
- Scaffold iOS project.
184+
- `scaffold_macos_project`
185+
- Scaffold macOS project.
186+
- `clean`
187+
- Clean build products.
188+
189+
### Diagnostics
190+
191+
- `doctor`
192+
- MCP environment info.
193+
- `manage_workflows`
194+
- Workflows are groups of tools exposed by XcodeBuildMCP. By default, not all workflows (and therefore tools) are enabled; only simulator tools are enabled by default. Some workflows are mandatory and can't be disabled.

0 commit comments

Comments
 (0)