Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】My First MCP Server: Semantic Code Search

2025年09月15日に「Dev.to」が公開したITニュース「My First MCP Server: Semantic Code Search」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIがコードの意味を理解して検索できるよう、Seroostという検索エンジンをMCPサーバーと連携させた。これにより、AIはコード全体を詳しく調べ、必要なファイルをすぐに見つけられる。手動でコードを渡す手間がなくなり、開発作業がずっと効率的になる。

出典: My First MCP Server: Semantic Code Search | Dev.to公開日:

ITニュース解説

AIがソフトウェア開発の現場でコードをより効果的に理解し、活用するための新しいアプローチに関する解説である。筆者は当初、AIエージェントが自由にコードベースを操作することに抵抗を感じていたが、Model Context Protocol(MCP)サーバーに関する情報に触れ、AIに安全な方法でツールを使わせることで、その有用性を引き出せることに気づいた。この発見が、筆者が以前から開発していたセマンティックコード検索エンジン「Seroost」を、AIエージェントと連携させるきっかけとなった。

現在のAIアシスタント、例えばClaudeやGitHub Copilotなどは、大規模なソフトウェアプロジェクトにおいて、しばしば限定的な能力しか発揮できないという問題がある。「認証ロジック」について質問しても、AIは関連するファイルを特定するために、ユーザーに複数のファイルをコピー&ペーストで提示するよう要求することが多い。これは、AIがキーワード検索や表面的な意味での検索に留まり、プロジェクト全体の構造や文脈を深く理解できていないためである。結果として、AIは重要な情報を見落とし、適切な回答を提供できない場合がある。

このような問題を解決するために、MCPとSeroostの組み合わせが提案されている。MCPは、様々なAIツールを接続するための標準的なプロトコルである。これは、異なる機器を接続するための共通の規格のように機能し、どんなAIエージェントでも外部のツールに簡単に接続できるようになる。筆者は、自身が開発したSeroostをこのMCPの仕様に準拠したサーバーとして構築することで、AIエージェントがコードベースを効率的かつ意味的に検索する能力を獲得した。

Seroostは、Rust言語で書かれたセマンティックコード検索エンジンである。TF-IDFという技術を使ってコードの内容をインデックス化し、検索可能にする。TF-IDFは、文書内での単語の出現頻度と、複数の文書間での単語の出現頻度を考慮して、その単語の重要度を測る手法である。Seroostは高速に動作し、検索結果には関連するコードのスニペットや行番号を含めることができるため、大規模なコードディレクトリでも効率的に機能する。

このSeroostをMCPサーバーとして構築するプロセスは比較的シンプルである。主に三つの機能に焦点を当てている。一つは、Seroostに検索対象とするディレクトリのパスを指定する機能。次に、指定されたディレクトリのコードを解析し、検索用のインデックスを構築する機能。そして最後に、インデックス化されたコードに対して意味的またはあいまいな検索クエリを実行する機能である。Seroostのコマンドラインインターフェース(CLI)をNode.jsのchild_process.spawnという機能で呼び出し、Seroostが返すJSON形式の検索結果を解析し、MCPを通じてAIエージェントに提供する仕組みを構築した。これにより、AIエージェントは「seroost_search」というツールを呼び出し、自然言語の検索クエリを渡すだけで、コードベース全体から関連情報を取得できるようになった。

この仕組みが導入されることで、AIエージェントと開発者のやり取りは劇的に変化する。以前は、AIが認証関連のファイルを必要とした際に、開発者が手動で多くのファイルをアップロードし、AIも不確実な回答を返すことがあった。しかし、Seroost MCPサーバーの導入後は、AIエージェントが「ユーザー認証機能」といった自然言語のクエリを使って直接seroost_searchツールを呼び出す。すると、Seroostは/src/auth/authenticate.jsauthenticateUser関数や/src/middleware/auth.jsverifyAuthToken定数など、関連性の高いファイルやコードスニペット、行番号を具体的に提示する。これにより、AIはプロジェクト全体を盲目的に推測するのではなく、正確な情報に基づいて行動できるようになる。

この技術は、いくつかの重要なメリットをもたらす。まず「スピード」であり、手動アップロードが不要でAIは即座に情報を発見できる。次に「スケール」であり、数千ものファイルからなる大規模プロジェクトでも効率的に検索を実行できる。さらに「セマンティクス」、つまり意味的な検索能力が向上し、キーワードだけでなく意味的なパターンでコードを検索できるため、より高度な理解が可能となる。最後に「構成可能性」であり、MCPは標準プロトコルであるため、このSeroost MCPサーバーはMCPに対応したあらゆるAIエージェントと連携できる。

このシステムをセットアップするには、Seroostをインストールし、MCPサーバーのコードをダウンロードして必要なライブラリをインストールする。その後、AIクライアントの設定ファイルにSeroost MCPサーバーの情報を追加する。具体的には、まずSeroostにインデックスを作成するパスを設定し、次にインデックス作成コマンドを実行してコードベースを解析する。これらの準備が整えば、AIエージェントはSeroostを呼び出してコード検索を開始できる。

筆者は、このSeroost MCPサーバーの構築が始まりに過ぎないと考えている。MCPの汎用性を活かせば、AIエージェントに対してコード検索だけでなく、データベースへのクエリ実行、システムログの分析、クラウドインフラのデプロイ、ソフトウェアテストの実行など、あらゆる種類の外部ツールを公開することが可能になる。Seroostはこの可能性を示す最初の例であり、AIがより強力な「ツールベルト」を手に入れる未来を予感させるものだ。

このプロジェクトを通じて、筆者はMCPがまだ新しい技術だが非常に大きな可能性を秘めていること、シンプルなツールでも標準化されたプロトコルに接続することで能力が飛躍的に高まること、そしてセマンティック検索機能がAIエージェントの使いやすさを大幅に向上させることを学んだ。これらの経験から、筆者は「エージェントコーディング」という考え方に、もっと早くから取り組むべきだったと結論付けている。

関連コンテンツ

関連IT用語