visionOS 向けの開発を加速するための MCP、Seiro MCP をリリースした
普段 Codex CLI をメインの AI エージェントとして使っているが、少なくとも自分の環境においては visionOS 向け Swift ベースの自律的コーディングがうまくいかなかった経緯があり、一念発起して Seiro MCP をつくることにした。
経緯から構成、使い方までいろいろ書きたいことがあるためしばらく連載してみる。ちなみにリポジトリはこちら。
経緯のはなし
ざっと書くと上記が概要なのだが、もう少し細かく書いてみる。
自分的には ChatGPT ブーム以降にはじめて学んだ言語が Swift であるため最初から AI ベースで学習をし、コーディングをしていた。他の言語は ChatGPT ブーム以前から学んでいたためちょっと自分の中で扱い方が異なっている。
Swift を学習したのは visionOS アプリをつくるためであったが、どうも Swift を使った AI エージェントによるコーディングはうまくいかない。当初は ChatGPT で出力してもらったコードをコピーして Xcode に貼り付けて動かしていたが、エラーになることもしばしばで、その時は自分でなおしたり ChatGPT にエラーを伝えて直してもらったりを続けていた。
Codex CLI 以降はターミナルを通じて同様のことを行なっていたがコードに直接 AI がアクセスできるようになったため、エラー時の修正がしやすくなった。しかし Codex が「できましたー」といってあげてくるコードが Xcode でエラーになることはちょいちょいあったのである。
となると Codex CLI に直接ビルドしてもらい、エラーを見つけて直してもらうという方法をとるようになる。しかしながら Codex CLI のメリットの一つである強力なセキュリティサンドボックス上では xcodebuild コマンドによるビルドはサンドボックス違反になるため実現できなかった。xcodebuild コマンドはリポジトリ内以外のディレクトリアクセスが必須になるためエラーとなってしまうのだ。もちろんこれらの制約をなくしたりすればいいのだが、自分としてはあくまでセキュリティサンドボックス内で完結したいというのがあった。
Xcode のビルドというと cameroncooke/XcodeBuildMCP という MCP ツールがある。自分の環境でも導入して使ってみようと思ったがどういうわけかうまく動かなかった。もっと時間をかけて調査するということにしてもよかったが、そのよくわからない部分が AI エージェントと MCP サーバの間で起きているっぽいらしくちょっと事態の把握は大変そうで疲れ果ててしまった。
ちなみに visionOS の学習と並行して Swift になれるためにサーバーサイド Swift についても学習を進めていてこちら側では結構自律的コーディングが成り立っていた。個人的な感想では AI エージェントによる自律的コーディングというのは、AI エージェントごとの機能差よりも言語エコシステムレベルでの相性の良さというのがだいぶ性能を左右すると思っている。
自分でつかうツールは自分でつくることをしやすい時代になった
今までであれば多少自分の環境に合わないツールであっても、いろいろと工夫をして使う (つまり、システムに自分を合わせる) というのが主流だったのではないかと思っている。もちろん設定項目の変更レベルでなんとかなればそれでよし、ではある。
今の時代、生成 AI も発達し、誰でもちょっとしたものが作れるようになった。と同時にすでに自分でコーディングをできる人にとってはより早く独自ツールを構築できる世界になったと思う。
「自分の環境でも動く visionOS ビルド MCP サーバをつくってみよう」
これが最初の動機。とにかくここが動きさえすれば AI によるコーディング、MCP サーバによるエラー検出、AI による修正という自律的コーディングのサイクルを回すことができるだろうと。
今のところ一番 AI エージェントによる自律的コーディングがうまくいくのは自分の範囲においては Rust であり、コンパイル時のチェックが厳格すぎるからこそ AI としてはトライアンドエラーをしやすく、扱いやすかった。
ということで今回の Seiro MCP の開発へとなる。
作り始めてわかってくることがいろいろある
MCP サーバは一時期使っていたが今は使っていないというものがいろいろある。
たとえば GitHub の MCP サーバなんかがいい例だ。プルリクエストの作成とかで重宝していた。しかし今はつかっていなくて、AI エージェント側への指示の問題なのかわからないがちょいちょい MCP を使わずに自分で PR を作ってくださいと貼り付け用のコンテンツを作ってきたり、gh コマンドを利用したりする。
ということでもうプルリクエストは gh コマンドを使うことにするということを AGENTS.md に記載することにしたら常にこちらを使ってくれるようになり、その結果 MCP を使わなくなった。MCP をどういうタイミングで使うのかということについてはまだよくわからないが Seiro MCP にしたところで使ってくれないケースがあり、このあたりはおそらく MCP サーバ単体で用意するというのではだめで、SpecKit みたいにプロンプトをインストールするような仕組みも必要なのだと思う。
他にも作ってみることでわかることはいろいろあって、作ってみることで人前でデモしやすくなり、意見をいただけるようになった。visionOS TC とかでも懇親会時にデモしていろいろフィードバックもらうことが出来、たとえばビルドとエラーのフィドバックによる自律化だけでは足りなくて、変な書き換えによる修正のループとかも起きやすいとのことだった。他にも、コーディングは完了し、エラーはないけど、座標系のミスが発生しているみたいな話も出た。
こういう問題を解決するには単にビルドサーバというだけではきっとだめで、プロンプトやツール系もセットになった環境を作る必要があると思う。Seiro MCP はビルドやリリースに特化するというよりは空間コンピューティング向けの開発を加速する便利環境として特化していこうと思っている。
まずは前段ぽいところで本エントリ終了だが、次回はツール自体の話を書いていこうと思う。
