myshoes-mcp-server をリリースしました
whywrite.it OSS班のwhywaitaです。
約1年ぶりのOSS関連ブログです。
GitHub Actionsのself-hosted runnerを動的に管理するツールである whywaita/myshoes のMCPサーバ whywaita/myshoes-mcp-server をリリースしました。
MCP
Model Context Protocol (MCP) はAI Agent全盛期のいま、エージェントがアクセスする際の標準化されたプロトコルです。
詳細はこちらのスライドが分かりやすいので具体的なところはこちらを参照してください。
myshoes-mcp-server
ひとまずドキュメント検索アダプタをいくつか作る事になりそうなので、自分でも簡単なMCPサーバを開発してみることにしてみました。
whywaita/myshoes はGitHub Actionsのrunner管理ロジックはそれなりの行数があるものの、ユーザが設定するRESTful APIは1つしかありません。これはサクッと書けるだろうというところから着手し始めました。
ひとまず大きい実装と小さい実装をぼんやり眺めつつGitHub Copilot Editを使って書くのが最近の手癖なので、github-mcp-serverとsyumai/opgen-mcp-serverのコードを見つつ書いてみたら小さいものはサクッと書けました。
躓いたポイントとしては、私の書くソフトウェアはDebugログをかなり多く出力するんですが、stdioに吸い込まれてうまく動かないとかありました。
初期バージョンとしては何も考えなくていい list_target
だけ実装しています。

既存のmyshoes側のAPIは一切触ってないんですが、トークンがそろそろ切れるとか、そもそも日本語対応とかをLLM側でやってくれるのは本当に楽ですね。
所感
現時点で書いてみた人間としてのざっくりとした所感です。
Go SDKはまだ材料がそこまで多くなさそう
これも手癖でGoを使って実装したんですが、現状オフィシャル (GitHubのmodelcontextprotocol org) にGo SDKがないというのもあり、サードパーティのライブラリ https://github.com/mark3labs/mcp-go を利用しました。
いくつかライブラリを見て回りましたが、そもそもそこまで重厚なプロトコルでもない かつ まだ仕様もどんどん変動しているので追従が大変そうな印象を受けました。
Go teamとして golang/tools 配下にmcp関連のファイルを置き始めたようですが、まだ internal ディレクトリにあるのでimportできません。sample置いているのを見て「ヨッシャ!!!書いたコード全部捨てるぞ!!!!!!」と発言したんですが全くそんなことは出来ませんでした。
このあたりの流れも見て過渡期感がすごいのでそこまで大きくベットするのは少し後かなという気がしています。
今書くならdenoはかなり筋が良さそうで、ランタイムとして --allow-*
などで権限を縛ることが出来るのは何でもやってくるAI Agent時代には向いてそうだなと感じました。
stdio は楽だけどさっさとHTTP Transportに移行しそう
MCPサーバのクライアントとしては個人的にはVS Codeが1番楽、次点でClaude for Desktopかなと思いますが、そもそものアーキテクチャとして必要なMCPサーバを全部ローカルで起動するのはちょっと微妙そうな印象を受けました。
現段階ではシンプルなことと認証周りがそこまで固まってないということもあり素朴なstdio Transportが実装度合いや既存実装的にもコードベースが多く良い感じがしますが、取り回しはHTTP Transportの方が楽そうなので色々固まればHTTP Transportに移行しそう(したい)印象を受けました。
意外とVibe codingがうまくいかない
AI Agentならサクッと書けるっしょ、と思っていたんですがMCP関連のコードが学習されていないからかあんまり良いコードを出力してくれませんでした。
まあこれはここ数日起きているGitHub Copilotの精度悪化によるものかもしれません。
DeepWikiがだいぶいい
Devinチームが提供しているDeepWikiですがかなり良いです。myshoes-mcp-server のドキュメントなんて書かなくて良いんじゃないかと感じてくるほどです。
まあ当然何も書かなくていいかと言うとそんなことはなくて、生成こそしてみましたがあんまり良いドキュメントにもなっていません。
myshoesで生成したものと比較すると雲泥の差です。これはちょっとでもドキュメント(READMEだけでも)を書いていることが大きそうです。
まとめ
総合してまだまだ過渡期感がとてつもないなと感じました。
MCPを活用する、いったん将来的に触れるようにちょっと手を出しておくぐらいがちょうど良さそうです。
myshoes-mcp-server 的には、CRUDぐらいは実装しておこうかなと思っています。
業務的な話をするなら認証認可をもうちょっとやれるようにする機構が実装されてからになりそうです。OAuth 2.1を使っていくことは決まったっぽいので、過渡期の流れにいつの間にか実装されてそうです。楽しみですね。