Xcode MCP 試してみた
おはようございます。watura です。XcodeのAI機能には失望しっぱなしですが 26.3 でかなり強化されるようです。
さて、その強化のうちの一つである Xcode MCPを簡単に試してみました。
Claude Codeをメインで使っているので,基本Claude Codeと書いていますが、まあ、なんでもMCPがつかえるなら使えるんじゃないかとおもいます。
Xcode 26.3 RC 1の時点での話です。
Giving external agentic coding tools access to Xcode | Apple Developer Documentation Let agentic coding tools access your project and Xcode capabi developer.apple.com
何ができる?
Claude CodeからiOS向けビルドとテストが簡単にできる。
登録方法
claude mcp add --transport stdio xcode -- xcrun mcpbridge
「xcode mcpをつかって、ビルドして!」で、ビルドしてくれます。
ツールリスト
実際には20 個ほどツールがあるようです。
その中でも、ぱっと見で重要なものをいくつか書いておくと、
BuildProject: プロジェクトのビルド実行
RunAllTests: 全テストの実行
XcodeListNavigatorIssues: Issue Navigatorに表示される全問題の一覧
RenderPreview: SwiftUI Previewのレンダリング(UIのスナップショット取得)
DocumentationSearch: Apple開発者ドキュメントの検索
ビルドとテスト
さて、ビルドとテストです。
Xcodeを手動でひらく
ビルド・テストしたい環境を準備し、手動で実行できるようにしておく
Claude CodeからMCPを有効にする
Xcode にアラートが表示されるので許可する
ビルドして!、全部テストして!っておねがいする
このMCPからは、ビルドのターゲットやSchemeみたいな設定類は基本的に操作できないようです。今開いているXcodeでビルド・テストするというかんじになるようです。なので、一手間はかかるのですが、 xcodebuild command とかをがんばっていた時からはすごい進化だとおもいます。
出来そうな気がする妄想
まだやっていないので空想。
XcodeListNavigatorIssuesでissue一覧を取得し、**修正できるも軽微なissueはは全部修正しておいて!!!!!**ってできるのでは?ってちょっとおもった。
現在のファイルのwarning一覧もちゃんととる方法があるので,ぐだぐだのコードいれてくんなよ。。。みたいなのにはちゃんと対応できます。
DocumentationSearch を Skill から適宜メソッドとかを調べさせられるようにできたら、なんなのそのメソッドシグネチャ?どっからもってきたの?みたいな意味の分からないコードを修正させるのに役立つのではないかと思った。データソースとしてHIGとかも入っているようなので、HIG観点からもどうか?みたいなのを RenderPreviewと組み合わせて確認とかできそう。
RenderPreview はPreviewのスクショとってくれるだけのシンプルツールではあるようなのですが、previwとfigmaでデザイン微調整しまくりとかできるんじゃないの?っておもったり思わなかったり。
もっとアイディアがほしい。
スニペットを実行するみたいなmcpもあって、なんか面白いことできそうだな!とは思うのですが、思うだけでいまのところとまっています。
感想
別に、ビルドとかテストも含めて既存の方法でぜんぜんできることではあった。なんなら、ヘッドレスでも実行できるという点では既存方法が優れているとかもあった。が、Xcodeでビルドできる状態になっていたら、Claude Codeからもビルドできるという圧倒的なシンプルさが現時点でのこのMCPのよさだと思いました。
おまけ
これでいい感じにやってくれた。
# iOS Build Policy
このドキュメントは、AIアシスタントがiOSプロジェクトをビルドする際のルールを定義します。
## 基本原則
**Xcode MCPが利用可能な場合のみ、ビルドを実行できます。**
- Xcode MCPが利用不可の場合は、ユーザーに手動でのビルドを依頼してください
- `xcodebuild` や `swift build` などのコマンドラインツールを直接実行することは絶対に禁止です
## ビルド実行フロー
### 1. Xcodeワークスペースの確認
まず、`XcodeListWindows` を使用して、現在開いているXcodeワークスペースを確認します。
```
XcodeListWindows
```
**現在のブランチのワークスペースが開いているか確認:**
- 現在のworking directoryのパスを含むワークスペースが開いている場合 → そのXcodeを使用
- 開いていない場合 → 次のステップへ
### 2. ワークスペースを開く(必要な場合)
現在のブランチのワークスペースが開いていない場合:
```bash
open iOS/App/App.xcworkspace
```
実行後、ユーザーに以下を指示してください:
```
Xcodeワークスペースを開きました。
以下の設定を確認・変更してください:
1. スキーム(Scheme): 適切なスキームを選択(例: Debug)
2. デプロイ先(Destination): ターゲットデバイスまたはシミュレーターを選択(例: iPhone 17)
設定が完了したら、お知らせください。
```
ユーザーから設定完了の確認を受けてから、次のステップに進みます。
### 3. ビルドの実行
`BuildProject` ツールを使用してビルドを実行します。
```
BuildProject(tabIdentifier: "windowtab1")
```
**注意事項:**
- `BuildProject` では、スキームやデプロイ先などのパラメータを指定できません
- これらの設定は、Xcodeで事前に設定されている内容が使用されます
- そのため、ステップ2でユーザーに設定を依頼することが重要です
### 4. ビルド結果の確認
ビルド完了後、結果を確認します:
- **成功の場合**: ユーザーに成功を報告
- **失敗の場合**: `GetBuildLog` を使用してエラー詳細を取得し、ユーザーに報告
```
GetBuildLog(tabIdentifier: "windowtab1", severity: "error")
```
## 制限事項
### 実行不可の操作
- アプリのシミュレーター実行(Run)は、Xcode MCPではサポートされていません
- ビルド後にアプリを実行する必要がある場合は、ユーザーに手動実行を依頼してください
### 複数のワークスペースが開いている場合
- `XcodeListWindows` で複数のワークスペースが表示される場合があります
- 現在のworking directoryのパスと一致するワークスペースの `tabIdentifier` を使用してください
## トラブルシューティング
### Xcode MCPが接続できない場合
ユーザーに以下を依頼してください:
```
Xcode MCPサーバーに接続できません。
以下を確認してください:
1. Xcodeが起動しているか
2. `/mcp` コマンドでMCPサーバーの状態を確認
3. 必要に応じてClaude Codeを再起動
```
### ビルドが失敗する場合
1. `GetBuildLog` でエラー詳細を取得
2. `XcodeListNavigatorIssues` でプロジェクト全体の問題を確認
3. ユーザーにエラー内容を報告し、対応を相談
## 例:完全なビルドフロー
```markdown
1. XcodeListWindows を実行 → 現在のワークスペースが開いているか確認
2. 開いていない場合:
- `open iOS/App/App.xcworkspace` を実行
- ユーザーにスキームとデプロイ先の設定を依頼
- ユーザーから完了通知を待つ
3. BuildProject(tabIdentifier: "windowtab1") を実行
4. 結果を確認し、ユーザーに報告
```
## 関連ドキュメント
- [テスト実行ポリシー](./test.md)
- [AGENTS.md](../../../AGENTS.md)
Xcodeにあるんだったら、Android Studioでもできるんでしょ??ってしらべたら普通にありました。
詳細はまだ見ていません。