最近は無限にインフラ整備をしているんだけど、これは自分が AI Agent、ような Claude をフル活用して Ruby と RubyGems の開発をできるようにするという作業をしていて、その一環ではある。
この日は https://rubyci.org/ に検索機能をつけていた。Ruby CI はデータはあるけど、探すのが人間の直感と記憶という状態だったのでまずは claude に db のダンプのありかと Rails のコードを渡してから現状を把握させてから、このテーブルは不要、とかこういう情報が欲しい、というようなのを渡していた。
最終的には https://rubyci.org/search という形でビルドの失敗ログを PostgreSQL の trigram 検索できるようにして、これを使ってみようと思う。あまりに一般的すぎる名称だと使い物にならないのだけど、テスト名などで検索するとよく落ちるやつだな、とかマシンを指定して SEGV とかやれば特定のマシンでだけ abort する奴、などが見つかると思う。
で、検索ができるようになったので、それはそれとして MCP サーバーを Ruby CI につけた。
Redmine に MCP をつけた時はもともとある REST にたいする写像っぽく Tool を作ればよかったけど、Ruby CI の場合は API があるわけではないので、Model やController、それらを組み合わせた用途を自分なりに組み立てて、こんなんで、という Tools を用意してみた。
まだ使いこなせているか、というと怪しいけど、bugs, rubyci, github が MCP でつながるので、テストがなんか失敗したのはこの変更が原因、とかこのテストに関連する修正は過去にあったか、というようなのを claude にぶん投げて調べられるようになったと思う。
自分で作って効果的になってるか、というのは少しずつ調整って感じで。